Arduino Yun Disk Expander мало памяти, но, похоже, с моей памятью все в порядке
Я не совсем понимаю это, когда я запускаю arduino yun disk expander sketch с подключенной SD-картой, я получаю следующее сообщение. Вам не хватает флэш-памяти, нужно 1 МБ. Я подключаюсь к своему arduino по ssh и получаю следующее
Filesystem Size Used Available Use% Mounted on
rootfs 6.9M 632.0K 6.3M 9% /
/dev/root 7.5M 7.5M 0 100% /rom
tmpfs 29.8M 148.0K 29.7M 0% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock3 6.9M 632.0K 6.3M 9% /overlay
overlayfs:/overlay 6.9M 632.0K 6.3M 9% /
/dev/sda1 29.7G 2.4M 29.7G 0% /mnt/sda1
Единственное, что заполнено, это /dev/root, но чтение, которое я прочитал в сообщениях здесь и в Интернете, говорит о том, что это нормально. Почему это может быть, я совсем запутался???
@Anders Kitson, 👍1
1 ответ
Лучший ответ:
У меня нет опыта или большого опыта работы с OpenWRT, поэтому я не уверен, что смогу сильно помочь, но я предполагаю, что ошибка, которую вы видите, связана с этой строкой скетча.
Выдержка из этого здесь:
Process awk;
awk.runShellCommand(F("df / | awk '/overlay/ {print $4}'"));
int output = awk.parseInt();
if (output < 1000) {
Serial.println(F("\nYou don't have enough disk space to install the utility software. You need to free at least 1MB of Flash memory.\nRetry!"));
halt();
}
Итак, похоже, что они выполняют df / | awk '/overlay/ {print $4}'
на YUN.
Они используют awk для извлечения четвертого столбца ($ 4
) строки, содержащей overlay (/overlay/
), что, кстати, ужасно по-хакерски.
Учитывая, что они ожидают, что результат сравнения awk.parseInt()
будет меньше 1000
, что означает, что у вас доступно менее 1 Мбайт, совершенно очевидно, что они ожидали, что этот столбец будет представлен в килобайтах. И все же в вашем собственном списке df
overlayfs:/overlay 6.9M 632.0K 6.3M 9% /
четвертая колонка составляет 6,3 М
, а остальные выбирают разные единицы измерения, то, что иногда называют "человеческим" выходом. Итак, мы знаем, что их волнует точка монтирования наложения. И что в то время, когда кто-то тестировал этот код, либо они не пробовали использовать SD-карту любого размера, либо вывод df тогда был другим, поэтому синтаксический анализ чего-то вроде df не является хорошей идеей.
И это все, что я могу сказать вам с какой-либо реальной уверенностью. Я не знаю, как настраивается наложение на ЮН.
Я думаю, если бы вы хотели "исправить" код с минимальными изменениями, это было бы добавить -k
в командную строку df для принудительного вывода на основе килобайт, предполагая, что -k
работает на любом df, поставляемом с YUN. Если вы хотите сделать еще один шаг, я полагаю, вы могли бы использовать -P
для получения выходных данных POSIX из df, опять же предполагая, что это поддерживается, и соответствующим образом изменить ожидаемые единицы измерения в скетче. Но если это только для вас, и вы знаете, что overlay имеет более 1 МБ свободного места, вы можете так же легко изменить функцию, чтобы она не могла выйти из строя:
void haltIfInternalFlashIsFull() {
}
Все это говорит о том, что я не удивлюсь, если вы столкнетесь с другой подобной проблемой в другой части скетча.
- Как получить HTTPS на Arduino?
- Как получить уникальный идентификатор для всех плат Arduino?
- Как поступить с файлом fzz
- Как сделать повторитель Wi-Fi на Arduino?
- Программа arduino выдаёт ошибку expected //primary-expression before ')' token error: //expected ';' before '}' token E
- HTTP-запросы с использованием Arduino
- Как заставить инфракрасный термодатчик MEMS - D6T-44-L06 работать с Arduino?
- Ошибка easy_install pip на Arduino Yun
да, я получил сообщение об ошибке "ошибка. установка e2fsprogs dosfstools fdisk rsync kmod-fs-ext4" Я некоторое время взломал этот yun. Такая головная боль. Не знаю, что делать в этот момент. В любом случае, спасибо, @Anders Kitson
Учитывая, что это, вероятно, будет длительный процесс, я бы направил вас к чему-то интерактивному, например, к сети чатов для форума. О единственной другой вещи, которую я добавлю здесь, это то, что, поскольку большая часть скетча, похоже, выполняет командные строки оболочки на YUN, вы можете получить лучшую помощь от людей, более сведущих в OpenWRT, чем в Arduino., @timemage
Хорошо, я поищу на этих форумах. Спасибо, я выберу ваш ответ, потому что он решил первоначальную проблему, которая у меня была. Спасибо, @Anders Kitson