Linux проблемы с samsung

Linux проблемы с samsung

Итак, это мой мануал по сборке Linux для Спики. Строго говоря, тема относится только к этому аппарату, но будет полезна всем, кто хочет собрать Linux под свой смартфон.

90-100МБ, с запущенным Firefox 3.6 (две вкладки с ошибкой соединения)

50МБ.
Работает:

  • Экран
  • Xorg
  • Тачскрин
  • SD

Не работает:

  • Звук
  • Клавиатура (есть виртуальная)
  • Модем (даже самой звонилки нет)
  • Wi-Fi
  • Bluetooth
  • NAND
  • .

Стоит отметить, что большинство нерабочих вещей на самом деле работают, но не видятся системой. Ядро то стандартное.

Благодарности:
Список людей, которые прямо или косвенно помогли в портировании.
tom3q — за пофиксенный драйвер framebuffer’а
reali — за активную помощь

Сообщение отредактировал -WOLF- — 12.02.18, 23:56

Часть 1. Подготовка.

Что понадобится:
1) Galaxy Spica
2) Карточка памяти (я использую 1ГБ из комплекта)
3) Linux на ПК (можно Live CD или виртуалку). У меня установлена Mageia 1
4) Windows. Для прошивки.
5) Интернет, чем быстрее, тем лучше. Качать надо будет много.

Ставим crosstool.
Берём отсюда свежую CodeSourcery. Нам нужна GNU/Linux, лучше инсталлер.
Делаем скачанный файл исполняемым.

Подготовка.
Берём ядро от Android. Я брал стоковое ядро от самуснга Update2 (отсюда)
Для самсунговского ядра нужно скопировать содержимое папки delta в папку kernel с заменой. Аккуратнее, не перепутайте, внутри kernel есть ещё одна папка kernel, копировать надо в первую. Здесь папка kernel (котрая рядом с delta и modules) будет являться отправной точкой для всех путей.
Если берёте другие ядра, то вам не нужна initramfs, потому что сейчас она не используется.
На этом шаге вам понадобится патч фреймбуфера от tom3q. Если нет аккаунта на Самдроиде, то внизу сообщения есть версия 4 этого патча. 5я пока не совместима с 2D/3D дровами от Самса.
Применяем патч к ядру.
Теперь у фреймбуфера появилась поддержка косноли. НО, пока консоль будет пустой, нам надо ещё перевести вывод на неё. Для этого находим в файле kernel/arch/arm/kernel/setup.c строчку и комментируем:

//fb_class = class_create(THIS_MODULE, «graphics»);
//if (IS_ERR(fb_class)) <
printk(KERN_WARNING «Unable to create fb class; errno = %ld\n», PTR_ERR(fb_class));
fb_class = NULL;
//>
return 0;
>

Естественно, путь у вас будет другой.
На этом подготовка исходников ядра заканчивается.

Конфигурирование.
В качестве начальной настройки ядра можно взять конфиг из arch/arm/configs/ он называется spica_android_defconfig, а можно взять мой из аттача.
В дефолтном не забываем вырубить initramfs. И добавить Default kernel command string

В моём конфиге отключено всё, что содержит упоминание Android, исключая драйвер звуковухи.
Теперь можете конфигурировать ядро как захотите, только помните, что в нём не должно быть ни одного модуля . У нас же нет initramfs.

Сборка ядра.
Тут всё просто:

скрипт запаковывает ядро в архив, копирует на флешку и извлекает её. Потом я прошиваю ядро с нетбука. Если подправите пути, то и вам этот скрипт будет хорошо служить.
Прошивать надо как и другие прошивки, но только PDA.
Всё, на этом описани сборки ядра закончено.

framebuffer_v4.patch.zip ( 4,23 КБ )
config.zip ( 9,31 КБ )

Сообщение отредактировал -WOLF- — 26.02.12, 14:25

Супер! Поддерживаем всеми руками!
Тестеры точно уже есть)

Кстати если нужна помощь с удовольствием поможем чем сможем!)

Сообщение отредактировал reali — 23.01.12, 04:23

Дык там же в конфиге есть параметр, где можно прописать строку консоли и отключить бутлодерную консоль.

Y U NO USE OPENEMBEDDED? Ведь есть же SHR, с гуем для телефона, RIL. И система пакетов ipkg.
Также, на тебе initrd — http://www.kaa.org.ua/alex/rootfs.img.gz, там по дефолту телнет включается и usb0 присваивается адрес 10.8.0.2 — полезно для отладки, когда microsd не работает (как у меня на sgs2)

Ну просвети, где.

Знаю, но буду собирать с нуля, хотя, наверное, и сопру у них многое. Пакетным менеджером, скорее всего, будет rpm.

Для отладки удобнее грузиться с microSD с монолитным ядром. Меньше прошиваться надо.

Boot options —> Kernel command line type (Always use the default kernel command string)

Это только в новых ядрах, в том, что я собирал, такого ещё нет.

Что именно ты хочешь этим сказать? Я не собираюсь всё с нуля писать, я просто собираю систему.
В качестве оболочки, наверное, возьму что-нибудь на GTK. Может GPE.
rpm’ки из MeeGo я тоже хочу, в шапке ж написано
Впрочем, никто ж не запрещает тебе собирать на базе этой всё, что захочешь. Я не против, если будет выбор оболочек, только за, в этом и есть смысл.

Читайте также:  Как восстановить windows erd commander для windows

Сообщение отредактировал -WOLF- — 23.01.12, 18:40

Я хочу сказать, что если есть готовое окружение для сборки пакетов, то надо пользоваться им, а не придумывать еще одно. Проще пару пакетов в апстрим закинуть, чем из апстрима руками все копировать и мучаться с совместимостью (имена пакетов, имена библиотек и симлинков на них внутри пакета). Ведь все пакеты уже есть в OE, тебе достаточно будет сделать пакеты с ядром и модулями для диалера и прочих демонов. Вот я в упор не понимаю, зачем некоторые так угорают по LFS и пишут свою систему инициализации — это же огромные грабли при апдейтах.

Кстати. GPE мертво, и никто его не пилит. Сейчас основной гуй SHR — E17, альтернативный — Aurora на qt4. Мне самому не нравится openembedded, я хочу юзать убунту/генту, но мне лень делать пакеты для актуальной версии freesmartphone (потому что сначала надо портировать все на ванильное ядро, загнать в апстрим и портировать из старого андроидного ядра драйвер модема).

В общем, рекомендую разобраться сначала с тем, какой протокол модема используется, как настраивать alsa для каждого сценария (звонок/музыка/блютус), какие фирмвари нужны, а потом взять образ SHR для близкого девайса (например, с самсунговским модемом, типа nexus s) и добиться работы иксов, модема, звука. Потом подготовить патчи для freesmartphone.org и интегрировать их (советую посещать #openmoko-cdevel во freenode, там всегда помогут с интеграцией и расскажут, что и как работает). Строго говоря, если работа модема и телефонные функции не интересны, можно забить на это все и использовать обычный «десктопный» дистрибутив.

В общем, я думаю, что внимание надо заострять на том, как собирать ядро, как портировать драйвера между версиями и как управлять железом (модем, wifi) из юзерспейса, какие есть демоны для телефонной периферии (сенсоры освещенности, гироскоп, акселлерометр). А в качестве дистрибутива выбрать стандартный — ubuntu/fedora/meego/OE, чтобы была большая база собранных пакетов, и где есть сообщество, занимающееся подготовкой пакетов и исправлением багов.

Источник

Samsung закрывает проект Linux on DeX: не прошло и года

В конце прошлого года Samsung выпустила приложение Linux on DeX, которое позволяло запускать операционную систему Ubuntu со смартфона. Таким образом компания пыталась превратить мобильное устройство в универсальное решение с возможностью использования в качестве компьютера.

К сожалению, сегодня стало известно о прекращении проекта. Samsung разослала всем тестерам электронное письмо с информацией о прекращении бета-тестировании Linux on DeX, которая прекратит свою работу на устройствах под управлением Android 10.

Закрытие такого нестандартного и интересного проекта не стало неожиданностью, поскольку Linux on DeX не получал каких-либо серьезных улучшений в течение своего жизненного цикла, помимо расширения количества поддерживаемых устройств.

На данный момент нет точной информации, сколько людей использовали инициативу Linux on DeX, учитывая, что приложение было недавно удалено из магазина Google Play. По состоянию на апрель 2019 года у программы насчитывалось 5000 установок, а последнее обновление на сайте APKMirror было загружено почти 36 000 раз.

Вы можете попробовать запустить Linux on DeX, при наличии смартфона Samsung с Android 9 Pie. Для этого вам потребуется загрузить приложение — это можно сделать с APKMirror и скачать на сайте Samsung образ операционной системы Ubuntu или взять его отсюда.

Источник

Как превратить флагманский смартфон Samsung в ПК на Linux

Высокая вычислительная мощность современных смартфонов, позволяющая им спорить даже с компьютерами, в конце концов не могла не привести к тому, чтобы не превратить их самих в компьютеры. Но какой бы мощной ни была аппаратная начинка аппарата, воплотить эту задумку в жизнь без полнофункциональной операционной системы было невозможно. К счастью, Samsung нашла выход и выпустила приложение Linux on DeX, которое буквально позволяет подключить к флагманским смартфонам монитор и работать с ними как с полноценными ПК.

История DeX началась с одноименной док-станции, которую Samsung представила вместе с Galaxy Note 8. К ней можно было подключать периферийные устройства, в том числе монитор, мышь и клавиатуру. Однако низкий спрос на док-станцию дал понять компании, что возможность работать в режиме ПК можно сделать программной. Так появилось приложение Linux on DeX, которое можно установить на смартфон и, подключившись к внешнему монитору, пользоваться настольной ОС без каких-либо затруднений.

Устройства Samsung с поддержкой Linux

На данный момент Linux on DeX поддерживает следующие устройства:

  • Galaxy S9/S9+
  • Galaxy Note 9
  • Galaxy S10e/S10/S10+/S10 5G
  • Galaxy Tab S4
  • Galaxy Tab S5e

Как запустить Linux

Чтобы превратить смартфон или планшет Samsung в ПК на Linux, необходимо проделать следующее:

  • Скачайте из каталога Galaxy Apps приложение Linux on DeX;
  • Авторизуйтесь, введя логин “dextop” и пароль “secret” (без кавычек);
  • Скачайте образ Linux, следуя инструкциям на экране, либо загрузите его на компьютер отсюда, а потом поместите в память своего устройства Galaxy;
  • Подключите внешний монитор и запустите среду Linux on DeX.
Читайте также:  Mac os хочет использовать связку ключей система как отключить

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

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

Источник

Твердотельные накопители от Samsung оправданы. Проблема оказалась в ядре Linux

Помните перевод статьи «When Solid State Drives are not that solid»? В ней сотрудники компании Algolia возлагали вину за повреждение данных в конфигурации RAID0 на SSD от компании Samsung.

Проблема все таки была решена в результате долгого разбирательства, в ходе которого сотрудникам Algolia пришлось даже написать ПО, эмулирующее их тип нагрузки на RAID, чтобы инженеры Samsung смогли повторить проблему на своем оборудовании. Исправление коснулось ядра Linux, а точнее — файла bio.c, отвечающего за основные операции блочного ввода-вывода.

Проблема состояла в следующем — подсистема ввода-вывода ядра может разделять операцию блочного ввода-вывода (BIO) на несколько в тех случаях, когда это целесообразно. Для разделения используется функция bio_split(). При разделении создается новый объект BIO, а информация в старом корректируется с учетом того, что часть адресов, по которым происходит ввод-вывод, «переехала» в новый объект. В целях экономии памяти новый объект создается путем копирования значений из старого, при этом указатели в новом и старом объектах указывают на одну и ту же область памяти. Для операций чтения/записи это работает нормально, поскольку при выполнении этих операций содержимое полей объекта BIO, доступных через указатели, не изменяется. Однако для операции DISCARD это не так — поле bio_vec структуры bio содержит указатель на служебные данные, необходимые для выполнения команды (начальный адрес и размер стираемой области).

Модули raid0 и raid10 ядра используют функцию bio_split() и посылают разделенные запросы драйверу SCSI/SATA, однако драйвер SCSI/SATA не предполагает что разные запросы могут использовать одну область памяти и перезаписывает содержимое по адресу, указанному в bio_vec. Поэтому следующий запрос приходит уже с указателем на некорректные данные, что и взывает DISCARD по некорректным адресам.

Первый вариант патча, предложенный инженерами Samsung, предусматривал модификацию исходного кода драйвера raid0, однако в ядро вошел более общий вариант, который предусматривает полное копирование структуры bio вместе с занимаемыми ей страницами памяти в случае выполнения DISCARD.

Данной проблеме подвержены все накопители, поддерживающие TRIM, независимо от модели, в конфигурации RAID0 или RAID10.

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

Источник

Linux проблемы с samsung

Итак, это мой мануал по сборке Linux для Спики. Строго говоря, тема относится только к этому аппарату, но будет полезна всем, кто хочет собрать Linux под свой смартфон.

90-100МБ, с запущенным Firefox 3.6 (две вкладки с ошибкой соединения)

50МБ.
Работает:

  • Экран
  • Xorg
  • Тачскрин
  • SD

Не работает:

  • Звук
  • Клавиатура (есть виртуальная)
  • Модем (даже самой звонилки нет)
  • Wi-Fi
  • Bluetooth
  • NAND
  • .

Стоит отметить, что большинство нерабочих вещей на самом деле работают, но не видятся системой. Ядро то стандартное.

Благодарности:
Список людей, которые прямо или косвенно помогли в портировании.
tom3q — за пофиксенный драйвер framebuffer’а
reali — за активную помощь

Сообщение отредактировал -WOLF- — 12.02.18, 23:56

Часть 1. Подготовка.

Что понадобится:
1) Galaxy Spica
2) Карточка памяти (я использую 1ГБ из комплекта)
3) Linux на ПК (можно Live CD или виртуалку). У меня установлена Mageia 1
4) Windows. Для прошивки.
5) Интернет, чем быстрее, тем лучше. Качать надо будет много.

Ставим crosstool.
Берём отсюда свежую CodeSourcery. Нам нужна GNU/Linux, лучше инсталлер.
Делаем скачанный файл исполняемым.

Подготовка.
Берём ядро от Android. Я брал стоковое ядро от самуснга Update2 (отсюда)
Для самсунговского ядра нужно скопировать содержимое папки delta в папку kernel с заменой. Аккуратнее, не перепутайте, внутри kernel есть ещё одна папка kernel, копировать надо в первую. Здесь папка kernel (котрая рядом с delta и modules) будет являться отправной точкой для всех путей.
Если берёте другие ядра, то вам не нужна initramfs, потому что сейчас она не используется.
На этом шаге вам понадобится патч фреймбуфера от tom3q. Если нет аккаунта на Самдроиде, то внизу сообщения есть версия 4 этого патча. 5я пока не совместима с 2D/3D дровами от Самса.
Применяем патч к ядру.
Теперь у фреймбуфера появилась поддержка косноли. НО, пока консоль будет пустой, нам надо ещё перевести вывод на неё. Для этого находим в файле kernel/arch/arm/kernel/setup.c строчку и комментируем:

Читайте также:  Sql server 2014 windows server core

//fb_class = class_create(THIS_MODULE, «graphics»);
//if (IS_ERR(fb_class)) <
printk(KERN_WARNING «Unable to create fb class; errno = %ld\n», PTR_ERR(fb_class));
fb_class = NULL;
//>
return 0;
>

Естественно, путь у вас будет другой.
На этом подготовка исходников ядра заканчивается.

Конфигурирование.
В качестве начальной настройки ядра можно взять конфиг из arch/arm/configs/ он называется spica_android_defconfig, а можно взять мой из аттача.
В дефолтном не забываем вырубить initramfs. И добавить Default kernel command string

В моём конфиге отключено всё, что содержит упоминание Android, исключая драйвер звуковухи.
Теперь можете конфигурировать ядро как захотите, только помните, что в нём не должно быть ни одного модуля . У нас же нет initramfs.

Сборка ядра.
Тут всё просто:

скрипт запаковывает ядро в архив, копирует на флешку и извлекает её. Потом я прошиваю ядро с нетбука. Если подправите пути, то и вам этот скрипт будет хорошо служить.
Прошивать надо как и другие прошивки, но только PDA.
Всё, на этом описани сборки ядра закончено.

framebuffer_v4.patch.zip ( 4,23 КБ )
config.zip ( 9,31 КБ )

Сообщение отредактировал -WOLF- — 26.02.12, 14:25

Супер! Поддерживаем всеми руками!
Тестеры точно уже есть)

Кстати если нужна помощь с удовольствием поможем чем сможем!)

Сообщение отредактировал reali — 23.01.12, 04:23

Дык там же в конфиге есть параметр, где можно прописать строку консоли и отключить бутлодерную консоль.

Y U NO USE OPENEMBEDDED? Ведь есть же SHR, с гуем для телефона, RIL. И система пакетов ipkg.
Также, на тебе initrd — http://www.kaa.org.ua/alex/rootfs.img.gz, там по дефолту телнет включается и usb0 присваивается адрес 10.8.0.2 — полезно для отладки, когда microsd не работает (как у меня на sgs2)

Ну просвети, где.

Знаю, но буду собирать с нуля, хотя, наверное, и сопру у них многое. Пакетным менеджером, скорее всего, будет rpm.

Для отладки удобнее грузиться с microSD с монолитным ядром. Меньше прошиваться надо.

Boot options —> Kernel command line type (Always use the default kernel command string)

Это только в новых ядрах, в том, что я собирал, такого ещё нет.

Что именно ты хочешь этим сказать? Я не собираюсь всё с нуля писать, я просто собираю систему.
В качестве оболочки, наверное, возьму что-нибудь на GTK. Может GPE.
rpm’ки из MeeGo я тоже хочу, в шапке ж написано
Впрочем, никто ж не запрещает тебе собирать на базе этой всё, что захочешь. Я не против, если будет выбор оболочек, только за, в этом и есть смысл.

Сообщение отредактировал -WOLF- — 23.01.12, 18:40

Я хочу сказать, что если есть готовое окружение для сборки пакетов, то надо пользоваться им, а не придумывать еще одно. Проще пару пакетов в апстрим закинуть, чем из апстрима руками все копировать и мучаться с совместимостью (имена пакетов, имена библиотек и симлинков на них внутри пакета). Ведь все пакеты уже есть в OE, тебе достаточно будет сделать пакеты с ядром и модулями для диалера и прочих демонов. Вот я в упор не понимаю, зачем некоторые так угорают по LFS и пишут свою систему инициализации — это же огромные грабли при апдейтах.

Кстати. GPE мертво, и никто его не пилит. Сейчас основной гуй SHR — E17, альтернативный — Aurora на qt4. Мне самому не нравится openembedded, я хочу юзать убунту/генту, но мне лень делать пакеты для актуальной версии freesmartphone (потому что сначала надо портировать все на ванильное ядро, загнать в апстрим и портировать из старого андроидного ядра драйвер модема).

В общем, рекомендую разобраться сначала с тем, какой протокол модема используется, как настраивать alsa для каждого сценария (звонок/музыка/блютус), какие фирмвари нужны, а потом взять образ SHR для близкого девайса (например, с самсунговским модемом, типа nexus s) и добиться работы иксов, модема, звука. Потом подготовить патчи для freesmartphone.org и интегрировать их (советую посещать #openmoko-cdevel во freenode, там всегда помогут с интеграцией и расскажут, что и как работает). Строго говоря, если работа модема и телефонные функции не интересны, можно забить на это все и использовать обычный «десктопный» дистрибутив.

В общем, я думаю, что внимание надо заострять на том, как собирать ядро, как портировать драйвера между версиями и как управлять железом (модем, wifi) из юзерспейса, какие есть демоны для телефонной периферии (сенсоры освещенности, гироскоп, акселлерометр). А в качестве дистрибутива выбрать стандартный — ubuntu/fedora/meego/OE, чтобы была большая база собранных пакетов, и где есть сообщество, занимающееся подготовкой пакетов и исправлением багов.

Источник

Оцените статью