Archive for the ‘kernel’ Category

Resposta para a proposta de palestra feita no FISL

Friday, April 4th, 2008

fisl9.0-2008: Speakers’ Corner


Reviews

Proposal Info

  • Author: Francisco Keppler Silva Alecrim
  • Title: Configurando um ambiente de desenvolvimento no computador pessoal para a plataforma Linux OMAP.
  • Track: Kernel

Review results summary

  • Classification argument: 485.663
  • Minimum classification argument for approaval in track: 523.25042724609

Legend

Confidence: Reviewer’s self evaluation regarding the proposal’s subject.

G I don’t know enough about the subject, I’m a generalist.
C I’m not an expert, but feel confortable with the subject
E I’m an expert, know the subject very well.

Relevance: Proposal’s relevance to th event, based on the abstract provided by the author.

1 None.
2 Small.
3 Some.
4 Much.
5 Extreme.

Technical quality: Proposal’s technical quality, based on the abstract provided by the author.

1 None.
2 Small.
3 Some.
4 Much.
5 Extreme.

Experience: Author’s experience on the proposal’s subject, based on the mini-curriculum provided by she/he and others sources (web searches, another events, performance among community etc).

1 None.
2 Small.
3 Some.
4 Much.
5 Extreme.

Recommendation: What the reviewer suggests to do regarding the proposal.

R Strong rejection - I have strong arguments to reject this proposal.
r Weak rejection - I don’t have strong arguments to reject this proposal; I have more arguments do reject this proposal than to accept it.
a Weak acceptance - I don’t have strong arguments to accept this proposal; I have more arguments to accept this proposal than to reject it.
A Strong acceptance - I have strong arguments to accept this proposal.

Reviews

Reviewer Confidence Relevance Technical quality Experience Recommendation
Reviewer #1 C 4 3 4 A
Reviewer #2 E 5 5 5 A
Reviewer #3 C 2 4 3 r
Reviewer #4 C 4 5 4 A
Reviewer #5 C 3 4 3 r
Reviewer #6 E 5 5 5 A
Reviewer #7 C 5 4 4 A
Reviewer #8 E 3 5 5 A
Reviewer #9 G 3 3 3 a
Reviewer #10 C 2 4 4 R

Comments to the author

  • Reviewer #1:
    A proposta nao apresenta a estrutura da palestra, detalhando os topicos e nivel de detalhamento que serah abordado. O CV do autor indica que o mesmo possui conhecimento suficiente na area, contudo nao deixa claro a experiencia do mesmo como palestante. - O assunto eh importante e relevante ao fisl, principalmente se o proponente apresentar os principais problemas enfrentados atualmente e as atuais solucoes ou em andamento, alem das virtudes da tecnologia em questao.
  • Reviewer #2:
    none
  • Reviewer #3:
    Da perspectiva do público do evento, o assunto é muito específico, com uma arquitetura pouco utilizada.
  • Reviewer #4:
    O tema é interessante, mas seu currículo deveria apresentar mais detalhes, incluíndo experiência na ministração de palestras.
  • Reviewer #5:
    none
  • Reviewer #6:
    none
  • Reviewer #7:
    Tema interessante para quem deseja iniciar o desenvolvimento para plataformas portáteis.
  • Reviewer #8:
    none
  • Reviewer #9:
    none
  • Reviewer #10:
    none

Doubts, questions, information and bugs ;-) : write to programa2008@softwarelivre.org


Copyright © 2003, 2004 Propus.
Copyright © 2005, 2006 Associação Software Livre.Org.
Copyright © 2006 Colibre.
papers is free software distributed under the GNU General Public License.

kernel contributions till 2008 04 04

Monday, February 11th, 2008

Kernel contributions : OMAP

6 - Fix

3 - Clean-up

2 - Acked-by

I should improve it. :P

Proposta de Palestra para o FISL 9.0 – 2008

Monday, January 21st, 2008

Proposta de Palestra para o FISL 9.0 – 2008
Autor: Francisco Keppler Silva Alecrim

Curriculum

Formado em Ciência de Computação pela Universidade Federal do Amazonas, onde trabalhou com administração de servidores Linux e Voz sobre IP. Desenvolvedor do Instituto Nokia de Tecnologia, onde trabalha com automação de testes e desenvolvimento do kernel do Linux na plataforma OMAP.

Proposta de palestra

Título:

Configurando um ambiente de desenvolvimento no computador pessoal para a plataforma Linux OMAP.

Público alvo:

Desenvolvedores interessados em iniciar desenvolvimento no kernel do Linux em ambiente embarcado, baseado na plataforma OMAP.

Descrição:

Os microprocessadores OMAP são de propriedade da Texas Instrument e foram desenvolvidos com o objetivo de serem utilizados com aplicações multimídia. A utilização de microprocessadores OMAP pode ser vista em telefones celulares, smartphones, PDAs e handhelds. Algumas das arquiteturas OMAP são dual-core contendo um processador de propósito geral ARM e um ou mais DSP. Os microprocessadores são lançados no mercado em plataformas de desenvolvimento, deste modo, as empresas interessadas podem testar e desenvolver softwares utilizando o processador presente na plataforma de desenvolvimento, antes de iniciarem a fabricação dos futuros dispositivos baseados no OMAP.
O OSK(OMAP5912 Starter Kit) é um exemplo de conjunto que permite o contato com uma plataforma de desenvolvimento OMAP. O OMAP5912 é indicado para terminais portáteis de dados, como dispositivos médicos portáteis e pontos de verificação de preço. A linha de microprocessadores que é indicada para handsets and PDAs possui outras plataformas de desenvolvimento, como o OMAP1611, OMAP1710 e OMAP2420. Todas as plataformas citadas possuem portes do kernel Linux,sendo os procedimentos para teste e utilização do kernel Linux em uma plataforma de desenvolvimento OMAP são muito semelhantes.
A configuração de um ambiente de desenvolvimento para a plataforma OMAP será abordada nesta palestra, incluindo atividades de configuração de u-boot, cross-compiler e kernel OMAP. Além disso, ferramentas que facilitam o trabalho com a comunidade são também apresentadas como o Git, Ctags, Cscope e Vim.
Durante a palestra será realizada uma apresentação do OSK com o kernel do Linux, expondo também a minha experiência de trabalho com a comunidade do Linux-OMAP.
Resumo:

Os microprocessadores OMAP são utilizados em diversos dispositivos móveis como telefones celulares, PDAs, smartphones e handhelds. Esta apresentação descreve os procedimentos de configuração e utilização do kernel Linux em uma plataforma de desenvolvimento OMAP, com demonstrações em um OSK(OMAP5912 Starter Kit).

Referências:

http://en.wikipedia.org/wiki/Texas_Instruments_OMAP

http://www.ti-estore.com/Merchant2/merchant.mvc?Screen=PROD&Product_Code=TMDSOSK5912

http://www.muru.com/linux/omap/

http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123&navigationId=11988&contentId=4638

http://en.wikipedia.org/wiki/ARM_architecture

http://tree.celinuxforum.org/CelfPubWiki/OSK

http://elinux.org/OSK

aprendendo linux kernel

Monday, January 14th, 2008

Inicie a leitura do Linux Device Drivers (http://lwn.net/Kernel/LDD3/);

Aprenda a compilar um kernel (http://www.falkotimme.com/howtos/debian_kernel2.6_compile/);

Aprenda a testar um kernel de maneira segura,
usando Qemu(http://franciscoalecrim.blogspot.com/2007/08/howto-debian-qemu-running-debian-inside.html);

if (você achar muito ruim fazer isto, fica difícil. você vai ter que fazer isto várias vezes, melhor se acostumar){
ret=-1;
goto erro;
}

Aprenda a trabalhar com modulos, hello_world
(http://osmrc.indt.org/keppler/techday_joinville_2007/ && http://tldp.org/LDP/lkmpg/2.6/html/index.html);

Aprenda um pouco sobre procfs
(http://osmrc.indt.org/keppler/techday_joinville_2007/);

Aprenda sobre drivers
(http://www.freesoftwaremagazine.com/articles/drivers_linux?page=0%2C0);

Aprenda git (http://www.kernel.org/pub/software/scm/git/docs/tutorial.html);

Nao esqueça de continuar lendo o livro
(http://lwn.net/Kernel/LDD3/);

erro:
Vlw!!!
return ret;

Submetendo PATCHES para o Kernel Linux

Tuesday, December 11th, 2007

Baseado em Documentation/SubmittingPatches do código fonte do kernel Linux

1 - Criando e enviando suas mudanças

diff -pruN arvore_original arvore_modificado > meu_patch

2 - Descreva o suas alterações

Seja simples e objetivo, descrevendo os detalhes tecnicos.

3 - Separe as alterações

Se você deseja fazer uma correção em um driver A e depois
uma outra alterção em um driver B. Separe em 2 patches para ficar mais organizado.

4 - Verifique o estilo

Verifique o estilo de seu patch. Utilize scripts/checkpatch.pl para checagem.

5 - Selecione o destino

Procure os mantenedores e envie os patches para as pessoas corretas.

6 - Copie a lista

CC a mailing list.

7 - No MIME, no links, no compression, no attachments. Just plain text.

Não preciso explicar mais nada. :P

8 - Limite de tamanho

Se o seu patch é maior que 40kb, é melhor deixar ele na web e mandar a URL.

9 - Kernel version

Mandar a versao do kernel, caso não seja a current.

10 - Não perca a coragem, re-envie.

11 - Inclua PATCH no subject.

12 - Assine seus patches.

13 - Acked-by para o revisor.

14 - O formato canonical

Minha dica pra isto é USE GIT. Ele já deixa os patches no formato.

git-format-patch -1

Tips and tricks
1 - Leia o CodingStyle
2 - #ifdefs são feios
3 - static inline é melhor que macro
4 - “Faça as coisas o mais simples possível,mas não mais simples” Albert Einstein

Estilo de código no Kernel Linux

Monday, December 10th, 2007

Baseado em Documentation/CodingStyle do kernel do Linux

1 - Indentação de 8 characteres

Exemplo:

if (x is true) {        we do y}

2 - Linhas podem possuir apenas 80 colunas

Exemplo:

 printk(KERN_WARNING "Warning this is a long printk with "   "3 parameters a: %u b: %u "   "c: %u \n", a, b, c);

3 - Localização de Chaves
Localizacao das chaves deve ser na ultima coluna do primeira linha e na
primeira coluna da ultima linha

if (x is true) {        we do y}

4 - Nomes de variaveis

LOCAIS devem ser curtas e simples
exemplo: tmp
GLOBAIS devem ser bem descritas, evitando contrações
exemplo: count_active_users()

5 - Evita typedefs.

Evite utilizar typedefs para ponteiros e estruturas, tornando o código
mais complicado.

Exemplo: “struct virtual_container *a;” é muito mais claro do que “vps_t a;”

6 - Funtions devem ser curtas e claras.

Condições:

  6.1 - Dimensões (80x24)  6.2 - Não mais do que 5-10 variáveis.  6.3 - Sem isto, você provavelmente está fazendo algo errado.

7 - Centralizar saída de funções.

GOTO não é péssima prático como muitos dizem.

Exemplo:

int fun(int a){       int result = 0;       char *buffer = kmalloc(SIZE);

       if (buffer == NULL)               return -ENOMEM;

       if (condition1) {               while (loop1) {                       ...               }               result = 1;               goto out;       }       ...out:       kfree(buffer);       return result;}

8 - Comentar é bom, mas NÃO EXAGERE.

Seu código deve ser claro, por isto não coloque no comentário explicações
sobre como seu cógigo funciona.
Veja: Documentation/kernel-doc-nano-HOWTO.txt

9 - Dica pro pessoal que usa emacs.

Eu uso VIM. :P

10 - Configuração no Kconfig

Definições são indentadas com TAB e help com 2 espaços.

11 - Estruturas de dados.

No kernel não tem garbage collector para corrigir suas porcarias.
Se você sujou então vai ter que limpar. Não esqueça que sua estrutura
pode ser acessada por outra thread, por isto lembre de realizar controle
ou você terá um bug.

12 - Macros
Macros devem ser escritas em letras MAIUSCULAS.

13 - Printing messages

Cuidados com erros de escrita nas mensagens.

14 - Alocando memoria

O kernel possui diversas formas de alocação de memória. A forma mais
recomendada de passar o tamanho memória que deve ser alocado é:

p = kmalloc(sizeof(*p), …);

15 - Funções inline

Neste tópico ele desistimula a utilização de funções inline.

16 - Funções retornam valores ou nomes

0 = sucesso
-Exxx = falhou :P

17 - Não re-invente macros

18 - Editor modelines

Não adicionei configurações para o seu editor em código fontes.

Comentários e correções são bem vindos em alecrim@gmail.com

OMAP1610 : improving boot up (PART 1/3 U-BOOT UPGRADE)

Thursday, December 6th, 2007

Hi all,

I’m working with an OMAP1610 H2 and it was taking a long time to load and uncompress kernel. Eduardo recommended me some things to be done.


BE CAREFUL -
I’M NOT RESPONSIBLE FOR YOUR ACTS. YOU CAN MISS INFORMATION IF YOU DO NOT FOLLOW THE STEPS CORRECTLY.

1 - Upgrade u-boot

- Install scratchbox for cross-compilation.

- Download the last version of u-boot.

- Configure and Compile u-boot

[sbox-arm: ~/applications/u-boot-1.3.0] > make omap1610h2_config && make

- Copy the new u-boot.bin to your tftpboot directory(details here)

$ cp /scratchbox/users/alecrim/home/alecrim/applications/u-boot-1.3.0/u-boot.bin /tftpboot

- Using minicom, access the current u-boot prompt and load the new u-boot

OMAP1610 H2 # tftp 0×10000000 u-boot.bin
TFTP from server 10.0.0.1; our IP address is 10.0.0.2
Filename ‘u-boot.bin’.
Load address: 0×10000000
Loading: ###################
done
Bytes transferred = 93568 (16d80 hex)

The bold number is import, save it.IT’S YOUR U-BOOT HEXADECIMAL!!

- Unlock the flash memory, erase a sector, copy the new u-boot.bin and lock the flash again.

DANGEROUS!! TAKE CARE!!DANGEROUS!! TAKE CARE!!DANGEROUS!! TAKE CARE!!DANGEROUS!! TAKE CARE!!

REPLACE THE BOLD HEXADECIMAL (16d80)!!! PUT YOUR U-BOOT HEXADECIMAL !!!

OMAP1610 H2 # protect off 00000000 0001ffff
Un-Protected 1 sectors

OMAP1610 H2 # era 00000000 0001ffff

Erasing sector 0 … done
Erased 1 sectors

OMAP1610 H2 # cp.b 0×10000000 0×00000000 0x16d80
Copy to Flash…\done

OMAP1610 H2 # protect on 00000000 0001ffff
Protected 1 sectors
OMAP1610 H2 #

Now, you can restart your board and pray for some output on your serial.

references:
http://tree.celinuxforum.org/CelfPubWiki/OSK_2fuboot
http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&navigationId=11994&path=templatedata/cm/product/data/omap_1610
http://tree.celinuxforum.org/CelfPubWiki/OSK

SD GPS OMAP 1710 ( SDIO GPS )

Monday, December 3rd, 2007

Hi all,

+

I tested SDIO GPS with a OMAP1710 and it works. Many phones and internet tablets are based on this platform. The steps below show the procedures I’ve done:

== KERNEL SIDE ==

Compile a new kernel from linux-omap with some additional features activated.

Device Drivers  ---><*> MMC/SD card support  --->   SDIO UART/GPS class support

Boot your device with this feature.

Maemo-omap1710:~# modprobe sdio_uart

Plug your SDIO card and the message below will be printed.

mmc_slot (GPIO 193) is now openmmci-omap mmci-omap.1: cover is now closedmmci-omap mmci-omap.1: command timeout (CMD8)mmc0: new SDIO card at address f111

The entry /dev/ttySDIO0 should be created.

== USER SIDE ==

I’m using GPSd to test it. Download the last version, compile and install on my device using scratchbox.

Start the GPS daemon

Maemo-omap1710:~# gpsd -N -n -D 2 /dev/ttySDIO0 &Maemo-omap1710:~# gpsd: launching (Version 2.34)gpsd: listening on port 2947gpsd: running with effective group ID 0gpsd: running with effective user ID 0gpsd: opening GPS data source at '/dev/ttySDIO0'gpsd: speed 4800, 8N1gpsd: garmin_gps not active.gpsd: gpsd_activate(1): opened GPS (4)gpsd: SiRF packet seen when NMEA expected.gpsd: FV  0x06: Firmware version: MEW-05-00-030627Wgpsd: FV  0x06: Firmware version: 2.4.02.02 0800003f21

Get you position:

Maemo-omap1710:~# gpspipe -rgpsd: client connect on 7gpsd: client(0) turned on raw modeGPSD,R=1$GPRMC,000004,V,0000.0000,S,00000.0000,W,0.0000,0.000,090602,,*3C$GPGSA,A,1,,,,,,,,,,,,,,,,*32$GPRMC,000005,V,0000.0000,S,00000.0000,W,0.0000,0.000,090602,,*3D$GPGSA,A,1,,,,,,,,,,,,,,,,*32$GPRMC,000006,V,0000.0000,S,00000.0000,W,0.0000,0.000,090602,,*3E$GPGSA,A,1,,,,,,,,,,,,,,,,*32$GPRMC,000007,V,0000.0000,S,00000.0000,W,0.0000,0.000,090602,,*3F$GPGSA,A,1,,,,,,,,,,,,,,,,*32$GPRMC,000008,V,0000.0000,S,00000.0000,W,0.0000,0.000,090602,,*30$GPGSA,A,1,,,,,,,,,,,,,,,,*32

The filesystem used is based on Maemo.

Tech day INdT - Manaus e Joinville - Fotos

Tuesday, November 27th, 2007

Fotos do evento realizado na Sociesc em Joinville.



Apresentação realizada em Joinville AQUI!!

Fotos do evento realizado na Universidade Federal do Amazonas em Manaus.


Apresentação realizada em Manaus AQUI!!!

Abraços !!

Tech day - INdT e UFAM

Monday, November 26th, 2007

O techday - INdT e UFAM está sendo realizado na UFAM. Na trilha Core, as apresentações estão disponíveis no site do INdT.

http://osmrc.indt.org/keppler/techday_manaus_ufam_2007/