Energia Serial Correction Linux
-
Upload
thiago-cavalcante -
Category
Documents
-
view
30 -
download
18
description
Transcript of Energia Serial Correction Linux
-
Correo para a Serial do Energiahttps://orenkishon.wordpress.com/2014/06/29/msp430-ez430-rf2500-linux-support-guide/
26 de maio de 2015
1 Verso do Kernel do LinuxO primeiro passo para a correo da serial
descobrir a verso atual do Kernel do Linux. Paraisso, abra o terminal e rode o seguinte comando:
uname -r
O resultado ser a informao desejada. Noexemplo, foi obtido:
3.13.0-53-generic
Apenas os 3 primeiros nmeros da verso(3.13.0) so importantes.
2 Download do cdigo fonteO problema da serial encontra-se no m-
dulo cdc-acm do Kernel. Para corrig-lo, ne-cessrio baixar o cdigo fonte do mdulo, que seencontra nos arquivos cdc-acm.c e cdc-acm.h.Tais arquivos podem ser baixados nos seguinteslinks:
http://lxr.free-electrons.com/source/drivers/usb/class/
necessrio apenas escolher a versodo Kernel na regio superior da pgina,abaixo do banner, e fazer o downloadde cada arquivo fonte separadamente.
https://www.kernel.org/pub/linux/kernel/
necessrio escolher o diretrio cor-respondente verso do Kernel, fazero download do arquivo (no exemplo:linux-3.13.tar.gz), extrair em um lo-cal qualquer e encontrar os arquivos napasta /drivers/usb/class/.
Aps o download, os arquivos devem sermovidos para uma pasta separada (p. ex., ~/cdc-acm/).
3 Correo do cdigo, compilao e trocado mdulo cdc-acm
No arquivo cdc-acm.c, os seguintes blocosde cdigo devem ser comentados:
1) if (0 > acm_set_control(acm, acm->ctrlout= ACM_CTRL_DTR | ACM_CTRL_RTS) &&(acm->ctrl_caps & USB_CDC_CAP_LINE))goto bail_out;
2) acm_set_control(acm, acm->ctrlout = 0);
Dependendo da verso do Kernel, as linhasacima podem estar escritas de uma maneira sutil-mente diferente:
1) acm->ctrlout = ACM_CTRL_DTR | ACM_CTRL_RTS;if (acm_set_control(acm, acm->ctrlout)< 0 &&(acm->ctrl_caps & USB_CDC_CAP_LINE))goto error_set_control;
2) acm->ctrlout = 0;acm_set_control(acm, acm->ctrlout);
A compilao feita executando-se os se-guintes comandos no terminal:
echo obj-m += cdc-acm.o > Makefile
make -C /lib/modules/uname -r/buildM=$PWD modules
Com isso, um arquivo cdc-acm.ko deveaparecer na pasta. Por fim, substitui-se o mdulocdc-acm original pelo mdulo corrigido, utilizando-se os comandos abaixo:
sudo rmmod cdc-acm
sudo insmod ./cdc-acm.ko
1
Verso do Kernel do LinuxDownload do cdigo fonteCorreo do cdigo, compilao e troca do mdulo cdc-acm