Перейти к содержимому
SergOmarov

OpenOS - инсталлер (и не только для нее)

Рекомендуемые сообщения

Идея появилась в разговоре с Артемом)

Суть: программа для eeprom, которая загружает какие-то файлы(ему надо было OpenOS) с пасты. После записи диска нужно сменить eeprom на совместимый с тем, что вы записывали.

http://pastebin.com/FF384rL4

Изменено пользователем SergOmarov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Идея появилась в разговоре с Артемом)

Суть: программа для eeprom, которая загружает какие-то файлы(ему надо было OpenOS) с пасты.

http://pastebin.com/FF384rL4

Эм-м. io в eeprom не существует же кажись?!

 

и 

  1. local i=component.internet 
тоже не должно работать
 
это точно из eeprom запускается?
Изменено пользователем swg2you

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

где-то видел прогу,реализующую загрузку по сети, для ос т.е. биос можно было подгружать извне

 

Отправлено с моего U9500 через Tapatalk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как правильно заметил @swg2you, данная программа запускаться из-под EEPROM неспособна. В студию требуем объяснения такого обмана.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не было обмана, я не знал и не тестировал) А что можно использовать вместо io?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не было обмана, я не знал и не тестировал) А что можно использовать вместо io?

А как можно выкладывать прогу, не тестируя её? Это обман. Давай я выложу прогу print("Hello world!"), а скажу,что это искусственный интеллект,  который ещё не научился делать ничего,кроме как здороваться, а запускаться он может из под биосов и во всех операционных системах. А ОНО НЕ РАБОТАЕТ! Но это не обман,ведь я её не тестировал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не было обмана, я не знал и не тестировал) А что можно использовать вместо io?

http://ocdoc.cil.li/component:filesystem

Не апи, который добавляется позже, операционной системой, а именно вызовы методов компонента.

 

Пример работы можешь в биби глянуть. Он использует гпу и файловую систему для загрузки файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Исправил недочеты, должно работать.

Не будет. Даже беглый взгляд видит кучу ошибок.

 

Главный недочет в логике работы: 

1. загрузил код из сети

2. сохранил его в файл (куда? на какую файловую систему? в тепм? на ридонли дискетку?)

3. а дальше что? твой код закончился и стоп-компьютер? а после рестарта опять грузит из сети?

 

И вообще, что значит "должно работать"? Проверять кто за тебя будет? Халтурщик :D

 

Заюзай bibi сохрани свой код как boot.lua и тестируй.

Изменено пользователем swg2you

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не проще взять код luabios и переделать. При включении проверять, есть ли нужные файлы, если их нет то качать, а потом грузиться с них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не проще взять код luabios и переделать. При включении проверять, есть ли нужные файлы, если их нет то качать, а потом грузиться с них.

Хорошее и правильное решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

а дальше что? твой код закончился и стоп-компьютер? а после рестарта опять грузит из сети?

Я написал, что надо поменять на загрузочную bios. 


Не проще взять код luabios и переделать. При включении проверять, есть ли нужные файлы, если их нет то качать, а потом грузиться с них.

Я хотел сделать универсальный загрузчик.


 

 

сохранил его в файл (куда? на какую файловую систему? в тепм? на ридонли дискетку?)

Ок, но я в api не нашел, как происходит выбор диска(да и писалось для Артема, ему для робота, значит только 1 диск будет)


О, в стандартном bios если функция поиска диска, на котором есть init.lua, можно оттуда почерпнуть)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я написал, что надо поменять на загрузочную bios. 

 

Я хотел сделать универсальный загрузчик.

 

Ок, но я в api не нашел, как происходит выбор диска(да и писалось для Артема, ему для робота, значит только 1 диск будет)

 

О, в стандартном bios если функция поиска диска, на котором есть init.lua, можно оттуда почерпнуть)

Поменять eeprom - как вариант решения, вполне хорош.

 

Искать нужно перебирая все файловые системы.

 

Фрагмент кода bibi

...
for addr in component.list("filesystem") do  -- для каждого компонента filesystem
  local fs=component.proxy(addr)  -- получаем прокси
  local h=fs.open(f)  -- пробуем открыть файл
  if h then  --если открылся
      --работаем
      ...
      fs.close(h) 
      return s,f --и выходим
  end
end
...

 

"только 1 диск будет" - Не думаю. Там еще, как минимум, файловая система временного диска должна присутствовать. Поправьте меня если это не так.

Изменено пользователем swg2you

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

if h then --если открылся

Зач проверять, если все равно else условия нет, а результ работы уже пойдет неправильно? 


 

 

Искать нужно перебирая все файловые системы.

Ага, я уже нашел, но пусть лучше записывает на первую попавшуюся. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зач проверять, если все равно else условия нет, а результ работы уже пойдет неправильно? 

 

 

Ага, я уже нашел, но пусть лучше записывает на первую попавшуюся. 

Все там есть ) Это фрагмент функции же. Перебираем пока файл не откроется, как открылся - обрабатываем и выходим по return

 

Компоненты сортируются рандомно. И если у тебя в компьютере установлен только один жесткий диск, то В 50% случаев ты будешь попадать на /tmp файловую систему в 64 килобайта, и удивляться, почему не хватило места для записи.

 

Опять же это предположение, я не исследовал файловые системы роботов. И не знаю есть ли там temp fs

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зач проверять, если все равно else условия нет, а результ работы уже пойдет неправильно? 

 

Ага, я уже нашел, но пусть лучше записывает на первую попавшуюся.

 

Ты, извини меня, дурак? Что значит "на первую попавшуюся"? А если в оперативную? А если диск ридонли? То, что скинул свэг --- рабочий и удобный вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...