ARM Linux и Cross Toolchain Проблема -- linux поле с участием embedded поле с участием kernel поле с участием arm поле с участием toolchain пол Связанный проблема

ARM linux and cross toolchain issue


4
vote

проблема

русский

У меня есть проблема, вероятно, с моей рукой набора инструментов, но, возможно, есть что-то другое, что я делаю не так. У меня есть китайская доска DEV QQ2440 Использование Samsung S3C2440 ARM9 UC. Я использую Ubuntu X86 с родным GCC (4.3.3) и перекрестной версией ARM-Unknown-Linux-uClibc-gcc (Crosstool-NG-1.3.2) 4.3.2

Я следовал учебникам из http://blog.leshak.ru/english/pages/how-to-install-u-boot-linux-hibsybox-rootfsjffs2-busybox--1132-into-nand-qq2440/ . и использовали пластыры для ядра Lehak для этой доски. Проблема в том, что его двоичные файлы отлично работают, и мой не ...

Я общаюсь с моей доской через RS232 (последовательный порт), и у меня есть последовательный терминал, настроенный на Target Linux. Я использую LESHAK'S UBOOT Image. Чтобы настроить мое ядро, я использую следующую командную строку:

 <код> qq2440> setenv bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 rw console=ttySAC0,115200'   

Для цели Я использую Vanilla Linux Источники версии 2.6.29, с патчами, созданными LESHAK . Я не искренне верю, что это когда-либо будет поддерживаться официально Linux, как это не основной продукт.

Мое изображение ядра начинает загружаться, но он, вероятно, изменяет частоту пропускания (или CPU) к некоторой нестандартной стоимости (уже пробовал все стандартные). Вместо точек, указывающих на загрузку ядра в память, у меня вместо этого только мусор. К сожалению, это, вероятно, не заканчивает процесс загрузки как сетевой интерфейс, ни файловой системы не подходит. Поэтому я понял, что он паникует где-то посередине.

Есть идеи, что я должен делать дальше?

Благодарю и AMP; С уважением,

Крис

Английский оригинал

I have a problem probably with my arm toolchain but maybe there's something other that I do wrong. I have Chinese made dev board qq2440 using Samsung s3c2440 ARM9 uC. I'm using Ubuntu x86 with native gcc(4.3.3) and cross-compile version arm-unknown-linux-uclibc-gcc (crosstool-NG-1.3.2) 4.3.2

I followed tutorials from http://blog.leshak.ru/english/pages/how-to-install-u-boot-linux-2629-rootfsjffs2-busybox-1132-into-nand-qq2440/ and used Leshak's kernel patches for that board. Problem is that his binaries work perfectly and mine don't...

I communicate with my board over RS232 (serial port) and I have serial terminal configured on target Linux. I use Leshak's uboot image. To configure my kernel I use following command line:

qq2440> setenv bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 rw console=ttySAC0,115200' 

For target I use vanilla Linux sources version 2.6.29, with patches created by Leshak. I don't honestly believe that this will ever be supported officially by Linux as it's not mainstream product.

My kernel image starts booting up, but it probably changes bandwidth (or CPU frequency) to some non standard value (tried all standard ones already). Instead of dots indicating loading kernel into memory I've got only trash instead. Unfortunately it doesn't probably finish the boot process as the network interface nor file system don't come up. So I figured out that it panics somewhere in the middle.

Any ideas what should I do next?

Thanks & regards,

Chris

</div
              
         
         

Список ответов

2
 
vote

Есть много разных вещей, которые могут быть здесь.

Звучит так, как будто вы говорите о последовательном порте, и что, похоже, дает мусор, как только управление передается в ядро ​​из Uboot. Я понимаю что правильно?

Посмотрите на указание скорости передачи данных, четность и т. Д. Для последовательной консоли в команде ядра.

О, и IIRC, на дереве ARM Linux было несколько «раннего_Принтка», которое может помочь вам отлаживать проблемы с последовательной консолью. (Но я предупреждаю тебя - это было пару лет, так как я имел дело с этим, поэтому моя память нечеткая.)

Дважды проверьте, что макет адреса памяти (расположение всех различных устройств) соответствует тому, что имеет ваша доска. (Я думаю, что это, вероятно, не проблема, но хотела упомянуть это за полноту.)

Вы говорите, что у вас есть двоичное ядро, которое работает правильно; Сравните конфигурацию ядра этого ядра на конфигурацию, которую вы используете для создания вашего ядра. Исследовать все различие, особенно любые специфические для рук.

Возможно, вы захотите дважды проверить эндента вашего набора инструментов против того, что ожидает ваша доска. Некоторые процессоры из процессоров кронштейнов / Xscale могут быть настроены на программное обеспечение Big-Endian или Little-Endian в программном обеспечении, поэтому он может стоить двойной проверки.

 

There are a lot of different things that could be going on here.

It sounds like you are talking about a serial port, and that it appears to be giving garbage once control is passed to the kernel from uboot. Am I understanding that correctly?

Look into specifying the baud rate, parity, etc. for the serial console on the kernel commandline.

Oh, and IIRC, there was some 'early_printk' thing in the ARM Linux tree that might help you debug serial console problems. (But I'll warn you -- it's been a couple years since I dealt with that so my memory is fuzzy.)

Double-check that the memory address layout (the locations of all the various devices) matches what your board has. (I think this is probably not the issue, but wanted to mention it for completeness.)

You say that you have a binary kernel that works correctly; compare the kernel config of that kernel to the config you are using for building your kernel. Investigate every difference, particularly any specific to ARM.

You may want to double-check the endianness of your toolchain vs what your board is expecting. Some of the ARM / XScale processors can be configured to big-endian or little-endian in software, so it might be worth double-checking.

</div
 
 
 
 
1
 
vote
  1. Просто включить отладочную сборку ядра [при наращивании UImage], чтобы вы получили более более четкую картину сценария [просто сделают вашу загрузку несколько медленными, поскольку все будет включена в действие. < / p>

  2. Можете ли вы проверить, передаваете ли вы правильные параметры для UART IE. Имя последовательного порта, это скорость передачи данных и т. Д. Это будет предоставлено бы производителем доски Samsung

  3. wrt В сети вместо DHCP вы можете просто назначить статический IP-адрес в вашу систему, так как можно было бы возможно, что процесс DHCP еще не включен.

  4. также лучший вариант будет использовать NFS, но да, это зависит от вашего выбора и цели вашего приложения. Использовать NFS, ваша сеть должна быть UP & AMP; Бег и ваша файловая система должна быть разделена.

как ретрансляция уже указала "Эндианс" может быть точкой, чтобы посмотреть в !!!

Вы можете ссылаться на это link, которая может помочь вам с тех пор, как это специфично для S3C2440

Надеюсь, это поможет.

-hjsblogger

 
  1. Just enable the debug build of the kernel[while building the uImage] so that you get a more clearer picture of the scenario [Just would make your boot up somewhat slow since all the printk's would be enabled].

  2. Can you check whether you are passing the correct parameters to the UART ie. Serial Port Name, it's baud rate etc This would be provided by the board manufacturer-Samsung

  3. WRT the network instead of DHCP can you just assign a static ip address to your system as it might be possible that the DHCP process is still not ON.

  4. Also a better option would be to use NFS but yeah, it depends on your choice and the purpose of your application. To use NFS, your network should be UP & running and your filesystem should be shared.

As retracile has already pointed out "Endianness" could be a point to look into !!!

You can refer this link which might help you out since it is specific to S3C2440

Hope this helps.

-hjsblogger

</div
 
 
0
 
vote

У меня была похожая проблема в одной точке, когда я пропускал --send-cmd из пикокома. Это команда, которую я выступаю в PicoCom для серийного UBoot Comms с Mini2440.

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

 

I had a similar problem at one point when I omitted --send-cmd from picocom. this is the command I issue to picocom for serial uBoot comms with the mini2440.

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

</div
 
 

Связанный проблема

-1  В чем разница между PS | WC и PS R | WC в Linux?  ( Whats the difference between ps wc and ps r wc in linux ) 
Я пытаюсь выяснить, в чем разница между <код> ps | wc и <код> ps r | wc ...

0  Python / django - Начало Apache с mod_wsgi  ( Python django starting apache with mod wsgi ) 
пытается запустить mod_wsgi. Получение опорной ошибки связанной с FMOD. <код> [root@host]# mod_wsgi-express start-server wsgi.py --port=80 > --user www...

8  Как отправить широковещательные пакеты через интерфейс specfic в Linux  ( How to send multicast packets via a specfic interface in linux ) 
<Р> Перепробовав все возможные способы, не мог найти работу вокруг этой проблемы. У меня есть машина с двумя интерфейсами eth0 и eth2. Я хочу, чтобы все ff38: ...

1954  Как изменить выходной цвет echo в Linux  ( How to change the output color of echo in linux ) 
Я пытаюсь распечатать текст в терминале, используя команду echo. Я хочу распечатать текст в красном цвете. Как я могу это сделать? ...

0  Nginx Server не перезапускается  ( Nginx server not restarting ) 
Я использую эту это Изображение экземпляра из Google Рынок облачной платформы. Этот экземпляр из Jetware #jetware . Сервер настроен с балансировщиком н...

9  Компиляция FFMPEG 2.3 с Android NDK R10  ( Compiling ffmpeg 2 3 with android ndk r10 ) 
Я хочу компилировать FFMPEG 2.3 с Android NDK R10, следуя в этом руководстве: http://www.roman10.net/how-to-build-ffmpeg-for-android/ После получения неск...

14  Прошивка на основе Linux, как реализовать хороший способ обновления?  ( Linux based firmware how to implement a good way to update ) 
Я разрабатываю прибор на основе Linux, используя Alix 2D13. У меня разработал скрипт, который заботится о создании файла изображения, создавая разделы, уста...

7  Утилита графического патча  ( Graphical patch utility ) 
У меня есть патч ядра для слегка другой версии ядра, то тот, который я пытаюсь исправить. Излишне говорить, что патч частично терпит неудачу. Я, безусловно, м...

1  Почему мой код не может создавать простое устройство ввода с помощью UINPUT?  ( Why my code is not able to create simple input device using uinput ) 
Я пытаюсь научиться использовать / dev / uinput в Linux и скопировал простой код из kernel.org/doc/html/v4.12/input/uinput.html который ниже: <код> xmln...

1  Форматирование вывода в Python  ( Formatting output in python ) 
Это мой код: <код> import commands mount = commands.getoutput('mount -v') lines = mount.splitlines() points = map(lambda line: line.split()[2], lines) perm...

0  Ошибка: аргумент типа "void (opca_hello ::) ()" не соответствует "void * (*) (void *)"  ( Error argument of type void opca hello does not match void void ) 
Я написал очень простой код для резьбы. Поскольку я очень новый для этого, я понятия не имею об ошибке. <код> class opca_hello { public: void hello(); } v...

90  Linux Процесс состояний  ( Linux process states ) 
в Linux, что происходит с состоянием процесса, когда ему нужно читать блоки с диска? Это заблокировано? Если это так, как выберите другой процесс, выбранный д...

10  Данные в SIGINFO заслуживают доверия?  ( Is the data in siginfo trustworthy ) 
Я обнаружил, что на Linux, сделав свой собственный звонок в rt_sigqueue syscall, я могу поставить все, что мне нравится в <код> si_uid и <код> si_pid / Код...

0  Конвертировать GNOME-HELP (YELP) XML в статический HTML с XSLT  ( Convert gnome help yelp xml to static html with xslt ) 
Некоторые из приложений GNOME на Linux используют браузер справки под названием <код> yelp . Например, Gnome-Calculator, <Код> gcalctool , имеет свои файлы сп...

20  Переименование набора файлов до 001, 002, ... на Linux  ( Renaming a set of files to 001 002 on linux ) 
Я изначально имел набор изображений формы Image_001.jpg, image_002.jpg, ... Я прошел через них и удалил несколько. Теперь я хотел бы переименовать оставшиес...