LINUX.ORG.RU

Монтирование образа без разделов? Как добавить разделы?

 , , ,


0

2

Есть одноплатник luckfox pico pro max. Для него есит SDK, который собирает linux. В дальнейшем можно собрать образ для sd-карты, отдельный скриптом. Я поковырял скрипт, он делает следующее:

dd if=env.img of=disk.img bs=1k seek=0
dd if=idblock.img of=disk.img bs=1k seek=32
dd if=uboot.img of=disk.img bs=1k seek=544
dd if=boot.img of=disk.img bs=1k seek=800
dd if=oem.img of=disk.img bs=1k seek=33568
dd if=userdata.img of=disk.img bs=1k seek=557856
dd if=rootfs.img of=disk.img bs=1k seek=820000

А затем можно disk.img залить на sd-карту:

dd if=disk.img of=/dev/sdX bs=1M

И оно будет работать.

Как в образ disk.img добавить таблицу разделов?

Ответ на: комментарий от Jullyfish

Сегодня получил Milk-V Duo 256M, эквивалент Luckfox Pico Max. Но такой ерунды с разделами там нет (по крайней мере в Debian образе).

Только замаялся интернет через RNDIS подключать, но подключил. Ethernet порт на моём не распаян.

jpegqs
()
Ответ на: комментарий от Jullyfish

Пины не распаяны, так что UART логи не посмотрю.

Не настолько эквивалент - тоже 256MB RAM, но чип другой SG2002 (у Luckfox Pico Max чип RV1106). Там два ядра на выбор riscv64 и arm64.

env запрятан в FAT16 раздел. Debian образы (riscv64), buildroot образы.

jpegqs
()
Ответ на: комментарий от a1ba

А как насчёт сделать бэкап первых 512 байт устройства перед монтированием, записать туда таблицу разделов, смонтировать, сделать, что нужно, потом отсортировать и восстановить первые 512 байт из бэкапа? Костыль, но должно сработать.

CYB3R ★★★★★
()
Ответ на: комментарий от Jullyfish

Скачал образ Ubuntu для luckfox pico pro max. Там по инструкции такая же сборка для sd-карты.

Знаю, я пробовал этот образ, они везде это безобразие устроили, не знаю почему нельзя было сделать как у всех с fat16 + ext4.

jpegqs
()
Ответ на: комментарий от AlexVR

Пора вечерами начать делать человеческий br2 external для неё.

Меня честно плата разочаровала, возможно разочарование ошибочное:

  • Кривой SDK (вообще лучше такой, чем никакой);
  • Матрица sc3336 еле работает (на скриншотах в wiki там тоже показывает FPS в районе 7-11);
  • С образом Ubuntu с ходу как-то ничего не работает, инструкций нет;
  • Как я понял, для rv1106 нет rockchip-mpp, поэтому доступ к хардварному энкодеру довольно ограниченный (через тот же gstreamer его нет).

Не уверен, что есть смысл, тратить время на br2 external, как я понимаю, доступ к хардварным кодекам через проприетарную библиотеку rockit, но это вам решать.

Если начнёте делать, поделитесь, пожалуйста. :^)

br2 external

У меня есть кривой SDK для rv1109/rv1126, с которым уже довольно много провозился, думаю на него обратно переключиться и попробовать сделать br2 external. Сейчас по мануалу начинаю делать.

Если что-то подскажите в этом направлении, буду очень благодарен.

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Прошлым вечером посмотрел.

Всё очень тухло.

SDK использует не самые свежие версии не самого свежего https://github.com/rockchip-linux/

Buildroot 2025.11 уже совсем не потянул старьё. На 2025.08, 2025.05 ещё можно что-то собрать.

Buildroot нормально компилит ядро через

BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/rockchip-linux/kernel"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="develop-5.10"

А вот с компиляцией Rockchip U-Boot через свежий Buildroot уже начинаются траблы.

  • Новые компиляторы и опции сборки ломаются на предупреждениях
diff --git a/common/command.c b/common/command.c
index 7171557265..e8f745358d 100644
--- a/common/command.c
+++ b/common/command.c
@@ -501,8 +501,8 @@ static int cmd_call(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	return result;
 }
 
-enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
-			       int *repeatable, ulong *ticks)
+int cmd_process(int flag, int argc, char * const argv[],
+		int *repeatable, ulong *ticks)
 {
 	enum command_ret_t rc = CMD_RET_SUCCESS;
 	cmd_tbl_t *cmdtp;
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index ccee25e216..1f32c3100d 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -875,7 +875,7 @@ static void rockchip_get_recalced_mux(struct rockchip_pin_bank *bank, int pin,
 	struct rockchip_pinctrl_priv *priv = bank->priv;
 	struct rockchip_pin_ctrl *ctrl = priv->ctrl;
 	struct rockchip_mux_recalced_data *data;
-	int i;
+	u32 i;
 
 	for (i = 0; i < ctrl->niomux_recalced; i++) {
 		data = &ctrl->iomux_recalced[i];
@@ -1607,7 +1607,7 @@ rockchip_get_mux_route(struct rockchip_pin_bank *bank, int pin,
 	struct rockchip_pinctrl_priv *priv = bank->priv;
 	struct rockchip_pin_ctrl *ctrl = priv->ctrl;
 	struct rockchip_mux_route_data *data;
-	int i;
+	u32 i;
 
 	for (i = 0; i < ctrl->niomux_routes; i++) {
 		data = &ctrl->iomux_routes[i];
diff --git a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
index c3fb549899..8668ed2a3a 100644
--- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
@@ -43,7 +43,7 @@ void rockchip_get_recalced_mux(struct rockchip_pin_bank *bank, int pin,
 	struct rockchip_pinctrl_priv *priv = bank->priv;
 	struct rockchip_pin_ctrl *ctrl = priv->ctrl;
 	struct rockchip_mux_recalced_data *data;
-	int i;
+	u32 i;
 
 	for (i = 0; i < ctrl->niomux_recalced; i++) {
 		data = &ctrl->iomux_recalced[i];
@@ -67,7 +67,7 @@ rockchip_get_mux_route(struct rockchip_pin_bank *bank, int pin,
 	struct rockchip_pinctrl_priv *priv = bank->priv;
 	struct rockchip_pin_ctrl *ctrl = priv->ctrl;
 	struct rockchip_mux_route_data *data;
-	int i;
+	u32 i;
 
 	for (i = 0; i < ctrl->niomux_routes; i++) {
 		data = &ctrl->iomux_routes[i];
  • Представленные в U-Boot defconfig-и от luckfox выползают за пределы размера SPL, но по аналогии с SDK собираются с rv1106_defconfig.

  • И вишенка: новый Buildroot передаёт другие переменные новому U-Boot для компоновки с rkbin. Та-дам. Тут скорее надо будет сборку этого старого U-Boot 2017.X править. Или компоновать всё самому в скриптах 🤦.

AlexVR ★★★★★
()
Ответ на: комментарий от Jullyfish

У меня есть кривой SDK для rv1109/rv1126, с которым уже довольно много провозился, думаю на него обратно переключиться и попробовать сделать br2 external. Сейчас по мануалу начинаю делать.

Если что-то подскажите в этом направлении, буду очень благодарен.

Rockchip нормально в Mainline поддерживается на уровне RK3588 и его младших собратьев. Тут сообщество постаралась. https://gitlab.collabora.com/hardware-enablement/rockchip-3588/notes-for-rockchip-3588/-/blob/main/mainline-status.md

Если надо что-то подешевле, но с более высокой производительностью, купите плату на RK3568. В Yocto заводил их на ура. Из отечественных могу посоветовать https://diasom.ru/ds-rk3568 ребята реально предлагают ОЧЕНЬ компактное решение и помогут с разводкой платы. Тут просто сравни фото SoM-ов от разных производителей.

По NPU и кодекам не подскажу. Нам в первую очередь нужен PTP. Даже HDMI не выводим. Только USB-UART на плате в качестве отладочной консоли.

Если не надо заползать в кишки сборочной системы Buildroot, то br2 external офигенен.

buildroot использую только для запуска u-boot и ядра. Yocto лучше подходит для дальнейшей разработки.

З.Ы.: С учётом постоянных ковровых бомбардировок интернета рекомендую как зеницу ока хранить BR2_DL_DIR.

AlexVR ★★★★★
()
Ответ на: комментарий от Jullyfish

А для чего это всё, нужно дешевый одноплатник для подключения камеры?

Совсем недавно составлял список, какие доступные платы есть, которые могут линукс запустить:

Milk-V DuoS : RV1103 64MB
Luckfox Pico Mini : RV1103 64MB
Luckfox Pico (Ultra) Pro/Max : RV1106 G2/G3 128MB/256MB
Luckfox Lyra B : RK3506G2 128MB
LicheeRV Nano : SG2002 256MB
Milk-V Duo256M : SG2002 256MB
BPi-M2 Zero : H3 512MB
Luckfox Lyra Zero W : RK3506B 512MB

jpegqs
()
Последнее исправление: jpegqs (всего исправлений: 1)
Ответ на: комментарий от AlexVR

Прошлым вечером посмотрел.

Огонь!

Всё очень тухло.

Эх…

Buildroot 2025.11 уже совсем не потянул старьё. На 2025.08, 2025.05 ещё можно что-то собрать.

Я себе скачал 2025.02, ибо LTS.

В итоге получилось собрать, залить?

Jullyfish
() автор топика
Ответ на: комментарий от AlexVR

RK3588

Есть Rock5B на руках, так что могу с этим поиграться.

Если не надо заползать в кишки сборочной системы Buildroot, то br2 external офигенен.

Понял, принял.

З.Ы.: С учётом постоянных ковровых бомбардировок интернета рекомендую как зеницу ока хранить BR2_DL_DIR.

В конце декабря всё выкачал и отдельно сохранил. :^) Там прям жесть была, я столкнулся с 4 видами проблем:

  • Кто-то в sourceforge переместил либу;
  • SSL-криптобесие;
  • Доступ к ресурсу заблокирован со стороны РФ;
  • Доступ к ресурсу заблокирован пользователям из РФ.
Jullyfish
() автор топика
Ответ на: комментарий от jpegqs

А для чего это всё, нужно дешевый одноплатник для подключения камеры?

Оценить возможности процессора для работы с камерами, чтобы в дальнейшем его запихнуть в свой одноплатник, который пойдёт в IP-камеру.

В принципе, мне rv1109/rv1126 кажутся нормальными, но у них цикл жизни закончился. Вышел rv1126b, который, вроде как, по пинам не совместим.

Jullyfish
() автор топика