11 fev

Mini2440 – (EE) FBDEV(0): FBIOPUT_VSCREENINFO: Invalid argument

Como o driver FB não aceita mudança de resolução adicione a linha:

return 0;

Entre a linha

case FBIOPUT_VSCREENINFO:

E a linha

if (copy_from_user(&var, argp, sizeof(var)))

Ficando assim:

case FBIOPUT_VSCREENINFO:
return 0;
if (copy_from_user(&var, argp, sizeof(var)))

Referências:

11 fev

Mini2440 – Compilando Kernel – 256MB – X35

Separei o procedimento em duas etapas de forma que a segundo possa ser executada várias vezes e a primeira apenas uma vez.

Etapa 1 – Baixando os arquivos

echo "Limpando as pastas temporárias"
rm -fr /usr/tmp/arm-2008q3/
rm -fr /usr/tmp/arm-2008q3*
rm -fr /usr/tmp/dl.php?file=linux-2.6.32.2-mini2440_20110413.tgz
rm -fr /usr/tmp/dl.php?file=linux-logomaker.tgz
rm -fr /usr/tmp/linux-2.6.32.2/
rm -fr /usr/tmp/linux-2.6.32.2-mini2440_20110413.tgz
 
echo "Criando diretorio para download"
mkdir /usr/tmp/
 
cd /usr/tmp/
 
echo "Baixando o kernel"
wget http://www.friendlyarm.net/dl.php?file=linux-2.6.32.2-mini2440_20110413.tgz --post-data="file=linux-2.6.32.2-mini2440_20110413.tgz&submit=Download+now&do=downloadfile" -O linux-2.6.32.2-mini2440_20110413.tgz
tar -vzxf linux-2.6.32.2-mini2440_20110413.tgz
 
echo "Baixando a ferramenta de Cross-Compiling - Para compilar para arquitetura ARM920t"
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package3696/public/arm-none-linux-gnueabi/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar -jxvf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Etapa 2 – Compilando

echo "instalando as dependencias"
yum install -y gcc ncurses-libs ncurses-devel uboot-tools
 
echo "Removendo diretorio para os fontes"
rm -fr /usr/src/mini2440/
 
echo "Criando diretorio para os fontes"
mkdir /usr/src/mini2440
 
echo "Copiando para o diretorio de fontes"
cp -fr /usr/tmp/linux-2.6.32.2  /usr/src/mini2440/
 
echo "Copiando para o diretorio de fontes"
cp -fr /usr/tmp/arm-2008q3 /usr/src/mini2440/
 
mkdir /usr/src/mini2440/modules
mkdir /usr/src/mini2440/kernel
 
echo "Configurando as variáveis de ambiente"
INSTALL_MOD_PATH=/usr/src/mini2440/modules
O=/usr/src/mini2440/kernel
PATH=$PATH:/usr/src/mini2440/arm-2008q3/bin
CC='arm-none-linux-gnueabi-gcc -march=armv4t -mtune=arm920t'
CROSS_COMPILE=arm-none-linux-gnueabi-
export CC CROSS_COMPILE
 
echo "Entrando no diretório fonte"
cd /usr/src/mini2440/linux-2.6.32.2
 
echo "Copiando o arquivo de configuração..."
echo "Ou utilize o meu arquivo de configuração: http://www.thiagosiqueira.com.br/Downloads/.config.zip"
cp config_mini2440_x35 .config
 
echo "Ou monte o seu .config na hora com o comando comentado abaixo"
#make ARCH=arm menuconfig
 
echo "Compilando Kernel"
 
make ARCH=arm -j4
 
echo "Convert the zImage to uImage (Descompactando o Kernel)"
mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/zImage /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage
chmod 755 /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage
 
echo "Compilando os módulos para o kernel"
 
make ARCH=arm -j4 modules
make ARCH=arm -j4 INSTALL_MOD_PATH=/usr/src/mini2440/modules modules_install

Pronto…

Agora basta gravar o uImage (/usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage) na NAND e o seu respectivo RootFS para o sistema desejado.
Copie a pasta /usr/src/mini2440/modules/lib para a raiz do sistema após o boot do kit mini2440.

11 fev

Mini2440 – Emdebian – 256MB – X35

Antes de começar, baixe os seguintes arquivos:

Conecte a porta serial e a usb do kit mini2440 ao seu computador.
Conecte-se ao kit via porta serial utilizando alguma aplicação terminal serial como:

picocom -b 115200 /dev/ttyUSB0 --send-cmd "sx -vv"

Obs.: No meu caso eu utilizo um conversor USB/RS-232 porisso meu dispositivo é “ttyUSB0”.
Efetue o boot do Mini2440 em modo NOR e observe o menu de opções que aparecerá no terminal.
Escolha a opção Vivi (“q” no meu caso).
Dentro do Vivi escreva o seguinte comando:

load flash 0 242360 u

Em um outro terminal vá para o diretório onde está o programa s3c2410_boot_usb e o arquivo u-boot-256M.bin e excute o comando:

./s3c2410_boot_usb u-boot-256M.bin

Desligue o kit mini2440 e troque o modo de boot para NAND.
Tendo o cartão SD conectado com os seguintes arquivos uImage e emdebian-jffs2.img na raiz mais a pasta lib/, faça o seguinte procedimento:

dynenv set env
dynenv set 40000
 
mmc
nand scrub
nand createbbt
 
fatload mmc 0:1 0x31000000 uImage
nand erase kernel
nand write.e 0x31000000 kernel
 
fatload mmc 0:1 0x31000000 emdebian-jffs2.img
nand erase root
nand write.jffs2 0x31000000 root ${filesize}
 
setenv bootcmd 'nboot.e kernel ; bootm'
setenv bootargs 'root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=0tb'
saveenv
boot

Referências:

10 fev

Mini2440 – Emdebian – mmap (22 Invalid argument)

Solução para o erro:
E: Couldn’t make mmap of 25165824 bytes – mmap (22 Invalid argument)

Baixe o pacote de arquivos:

http://www.thiagosiqueira.com.br/Downloads/mini2440-emdebian-apt.zip

Descopacte para raiz do Cartão SD.

Monte o cartão de memória em um diretório específico:

mkdir /media/SDCARD
mount /dev/mmcblk0p1 /media/SDCARD/

Instale os pacotes na seguinte ordem:

dpkg -i gcc-4.4-base_4.4.5-8em1_armel.deb
dpkg -i libgcc1_4.4.5-8em1_armel.deb
dpkg -i libstdc++6_4.4.5-8em1_armel.deb
dpkg -i apt_0.8.10.3+squeeze1em1_armel.deb

Faça um teste para chegar se o “apt-get update” está funcionando…

dhclient
apt-get update

Caso queira colocar o DHCP como automático, execute as linhas abaixo:

echo "auto eth1" > /etc/network/interfaces
echo "allow-hotplug eth1" >> /etc/network/interfaces
echo "iface eth1 inet dhcp" >> /etc/network/interfaces