Отговори на тема  [ 1 мнение ] 
Странен феномен с едноплатков компютър 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Странен феномен с едноплатков компютър
На работа се натъкнах на един леко странен "феномен". Колежка се оплаква, че теста на едно изделие не работи с една конкретна платка, но другите платки от серията нямат такъв проблем. Първо си помислих, че има бъг в софтуера на теста. Изделието е един от едноплатковите компютри, които предлагаме, базиран на AllWinner A13.

Тестът е следният:
На една SD карта е записан линукс, в който е вкаран теста на изделието. След като буутне платката и зареди линукса в рама, линуксът трябва да стартира тестовия скрипт ( bash ).
Тестовият скрипт първо отваря един файл, в който са записани конфигурациите на различните изделия и си търси реда със своята конфигурация (на базата на ID на платката). След като я намери парсва конфигурацията, за да знае какво трябва да тества. Да, обаче само на тая платка скриптът казва, че не намира конфигурация с такова ID.
Изключвам платката, вадя SD картата и я слагам на друга платка от същата серия и повтарям процедурата. Там тестът си тръгва без проблем и не реве за ID-то.

Тръгвам да дебъгвам скрипта и установявам, че поради някаква причина линуксът като зареди на въпросната платка не се кефи на фрагменти катo:

Код:
while IFS='' read -r line
do
  ala bala
done <<< $(cat ./CONFIGS.txt)


Обаче на други платки няма проблем. същият скрипт си върви без проблем на същия линукс зареден от същата карта.

Пренаписах кода да стане от рода на:

Код:
    cfgs=$(cat ./CONFIGS.txt)
   
    for line in $(echo "cfgs");
    do
        ala bala
    done


И тука на проблемната платка тая част от кода заспа.
Обаче по-нататък има момент в който параметрите на рама в конфигурацията са описани от рода на:
RAM=524288 KB
съответно, като парсна конфигурацията имам променлива RAM, която е със стойност "524288 KB"
И там извиквам
Код:
echo $RAM  | awk -F " " {'print $1'}
за да остане само "524288", т.е изрязвам всичко след числото. Е да, ама на точно конкретната платка, нещата не се получава.

Решавам да направя експеримент. Отварям си терминал на моя компютър и пиша:
Код:
#echo "ALA BALA PORTOKALA" | awk -F " " {'print $1'}
#ALA


в терминала на платката пиша същата команда и резултатът е:
Код:
#ALA BALA PORTOKALA


И установявам, че всъщност awk се държи различно на тази платка, спрямо другите платки.

И не мога да разбера, как при уж еднакъв хардуер (бомът е еднакъв на всички платки от серията) на който му се зарежда еднакъв софтуер има разлика в резултата при изпълнение на awk?

Открих малка разлика във проблемната платка (от гледна точка на хардуера) спрямо останалите, а именно в RAM чипа:
Изображение

Последният ред букви и цифри, който е до маркера на чипа, на 3-те платки е еднакъв, обаче на проблемната платка е различен.

Оттам стигнах до изводът, че може да има проблем с RAM чипа и поради някаква причина awk да не се държи както трябва на конкретната платка. Все пак целият линукс и тестовият софтуер и всичко стои във рама.


Пет Сеп 11, 2020 1:41 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 1 мнение ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни