RK3188上运行Ubuntu系统

2023-11-05

参照:http://androtab.info/radxa_rock/ubuntu/

注意事项:

1.不要使用163源,163的源上不带 armhf架构。

2.Sdcard使用不了可以使用u盘,这都无所谓。

3.最后启动桌面时如果出现:

xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory)

Device Drivers  --->
    Character devices  ---> 
        [*] Virtual terminal

选上Virtual terminal。就会创建/dev/tty0

烧写miniroot,然后设置启动变量editenv,保存saveenv以后就可以自动启动Ubuntu系统了。
boot=/dev/sda1:/ubuntu
init=/sbin/init
autoboot=1

其它:
1.CONFIG_VT can fix that “xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory)”
2.CONFIG_FRAMEBUFFER_CONSOLE=y (and if you want console on screen, need "console=tty0" in CMDLINE) 
可以实现Ctrl+Alt+F1/F2...实现的虚拟终端功能。


更:

Miniroot from:  http://androtab.info/radxa_rock/sdboot/

0.解打包boot.img

Unpack boot.img 两种方法

1tail -c +9 boot.img | gzip -dc | cpio -i

2rkunpack boot.img

会生成boo.img-raw这个就是ramdisk.img

Pack boot.img 两步

1find . | cpio -o -H newc | gzip > ../boot-new.img

2rkcrc -k boot-new.img boot.img

From: http://linux-rockchip.info/mw/index.php?title=Rkutils

 

试了RK编译Android中的制作方法,失败了,暂时不知道为什么:

mkbootfs boot | minigzip > ramdisk.img && \

./mkkrnlimg ramdisk.img ramdisk-rk.img

 

1.以太网不能使用

使用root用户可以上网了,但是不能ping也不能使用network manager

sudo service network-manager start

ROOT用户可以通过Firefox上网了。

(以后可以尝试使用最新版本的内核)

不能ping似乎是因为内核版本的问题,Android内核会有点问题。

将其添加至:/etc/rc.local 问题得以解决。

 

2.关于运行速度慢的问题

烧写到sdcard中速度比U盘快多了。

这个要仔细考虑一下是怎么回事。USB传输速度没有mmc/sd控制器输出速度快的原因吗?

 

3.Waiting up to 60 more seconds for network configuration...

解决方法:

/etc/init/failsafe.conf 注释其中的sleep n。

From: https://petermolnar.eu/linux-tech-coding/ubuntu-11-10-disable-waiting-up-to-60-more-seconds-for-network-configuration/

可以实现27秒启动。

 

3.完全运行在SDCARD

将所有固件烧写到sdcard中:

(1).将sdcard制作成可以启动的boot from SD card on Radxa Rock文章中的方法
(2).使用gparted分出一个区用来放Ubuntu系统,分区前要留40MiB容量。
(3).将Ubuntu镜像烧入到sdb1分区
   sudo fsarchiver restfs fs-ubuntu-rk3188.fsa id=0,dest=/dev/sdb1

$ sudo fsarchiver restfs fs-ubuntu-rk3188.fsa id=0,dest=/dev/sdb1
Statistics for filesystem 0

* files successfully processed:....regfiles=65939, directories=6741, symlinks=29994, hardlinks=25, specials=85

* files with errors:...............regfiles=0, directories=0, symlinks=0, hardlinks=0, specials=0
$

(4).将环境变量设置为
   root=/dev/mmcblk0p1:/ubuntu
   (可通过设置miniroot默认的env)

<完>

4.如何备份系统

(1)制作一个脚本烧写 先分两个区,再烧写sdboot/loader/miniroot。第二个分区烧写Ubuntu系统。

(2)将所有系统制作成一个固件,通过dd命令统一烧写。

壓縮 的 備份與還原

備份 壓縮

dd bs=1M if=/dev/sdx | gzip > backup.gz

dd bs=4M if=/dev/sdx | gzip > backup.gz

還原 解壓縮

gzip -dc backup.gz | dd of=/dev/sdx # default bs=4k

gzip -dc backup.gz | dd bs=1M of=/dev/sdx

gzip -dc backup.gz | dd bs=4M of=/dev/sdx

Fromhttp://blog.longwin.com.tw/2013/10/dd-sd-card-backup-os-2013/


5.解决非root用户不能连接网络

Disable ANDROID_PARANOID_NETWORK
config ANDROID_PARANOID_NETWORK
        bool "Only allow certain groups to create sockets"
        default y
        help
                none
make menuconfig --->
 Networking support  --->
  Networking options  ---> 
   [*] Only allow certain groups to create sockets

From: naobsd

6.Fix Audio out put problem

1. let ubuntu join "audio" group
sudo usermod -a -G audio ubuntu

2.install pavucontrol
sudo apt-get install pavucontrol

3.enable sound card output(just need do one time, I don't know why pavucontrol can't open it)
sudo amixer cset numid=1,iface=MIXER,name='Playback Path' SPK

4.play video by smplayer/ play audio(wav/mp3/etc) by vlc。
5.about sound cards
there are two cards on rk3188. there for HDMI and machine self.
(1) ROCKCHIP-SPDIF is for HDMI.
(2) RK_RK616       is for machine self. 
you should check it to the correct out device.

then you can use pavucontrol, it works fine almostly.


已知Bugs:
1.关于休眠的两个问题
(1)休眠唤醒后不能正常的登录
 Device Drivers  --->   
  Graphics support  --->  
   Console display driver support  --->
    Framebuffer Console support
暂时没有解决。

(2)深度休眠后不能唤醒
暂时没有好的方法解决。

2.音频相关不能使用
aplay ../usr/share/sounds/purple/receive.wav 可以插入声音。

播放:
aplay Windows.wav
调音量:
amixer controls
amixer cget numid=1
amixer cset numid=1 30

from: http://www.100ask.org/bbs/forum.php?mod=viewthread&tid=10566


3. about flash on ubuntu-arm
ref: Flash on the Raspberry Pi


4. WiFi/AP6330

prepare firmware, load driver, run supplicant or something

a. prepare firmware

shell@android:/ $ 
[  151.508421] Current WiFi chip is AP6330.
[  151.546786] =======================================================
[  151.553398] ==== Launching Wi-Fi driver! (Powered by Rockchip) ====
[  151.560073] =======================================================
[  151.566684] RKWIFI WiFi driver (Powered by Rockchip,Ver 4.53.WFD) init.
[  151.574037] =========== WLAN placed in POWER ON ========
[  151.579728] ANDROID-ERROR) wifi_set_power = 1
[  151.584305] rk29sdk_wifi_power: 1
[  151.839625] wifi turn on power
[  151.842710] ANDROID-ERROR) wifi_set_carddetect = 1
[  151.847545] rk29sdk_wifi_set_carddetect:1
[  151.851581] mmc1: slot status change detected(0-1)
[  152.048853] 
[  152.048857] drivers/mmc/core/core.c...2010..  ===== mmc_rescan Begin....[mmc1]
[  152.092894] 
[  152.092897] mmc_attach_sdio..808..  ===== Begin to identify card as SDIO-card. [mmc1]
[  152.164637] rk29_sdmmc_change_clk_div..1961..  newDiv=0, newCLK=24000Khz [sdio]
[  152.174937] mmc1: new high speed SDIO card at address 0001
[  152.182317] sdmmc_rescan_try_freq..1886..  ===== Initialize SDIO successfully. [mmc1]
[  152.190664] Linux Kernel SDIO/MMC Driver
[  152.195295] dhdsdio_probe : no mutex held. set lock
[  152.200296] FW_PATH = /system/etc/firmware/fw_RK903_ag.bin
[  152.200318] NVRAM_PATH = /system/etc/firmware/nvram_AP6330.txt
[  152.211956] F1 signature read @0x18000000=0x16044330
[  152.220855] DHD: dongle ram size is set to 294912(orig 294912)
[  152.227318] dhd_bus_select_firmware_name_by_chip: firmware_path=/system/etc/firmware/fw_RK903_ag.bin
[  152.238244] wl_create_event_handler thr:71e created
[  152.243488] wl_create_event_handler thr:71e started
[  152.251069] p2p0: P2P Interface Registered
[  152.255589] dhd_attach thr:71f created
[  152.259738] dhd_attach thr:71f started
[  152.263766] dhd_attach thr:721 created
[  152.267721] dhd_attach thr:721 started
[  152.271740] dhd_attach thr:722 created
[  152.275731] dhd_attach thr:722 started
[  152.280003] ANDROID-ERROR) wifi_get_mac_addr
[  152.284375] bcmsdh_set_drvdata Enter
[  152.290756] Broadcom Dongle Host Driver: register interface [wlan0] MAC: 00:90:4c:11:22:33
[  152.302942] dhdsdio_probe : the lock is released.
[  152.308524] 
[  152.308533] Dongle Host Driver, version 1.28.13.1.1 (r)
[  152.308548] Compiled in drivers/net/wireless/bcmdhd on Jul  4 2013 at 10:32:45
[  152.323169] ANDROID-ERROR) wifi_set_power = 0
[  152.327767] rk29sdk_wifi_power: 0
[  152.532149] wifi shut off power
[  152.535357] =========== WLAN placed in RESET ========
[  152.543754] Current WiFi chip is AP6330.
[  152.569982] dhd_bus_select_firmware_name_by_chip: firmware_path=/system/etc/firmware/fw_RK903_ag.bin
[  152.570098] Dongle Host Driver, version 1.28.13.1.1 (r)
[  152.570114] Compiled in drivers/net/wireless/bcmdhd on Jul  4 2013 at 10:32:45
[  152.570248] wl_android_wifi_on in
[  152.570291] ANDROID-ERROR) wifi_set_power = 1
[  152.570348] rk29sdk_wifi_power: 1
[  152.821723] wifi turn on power
[  152.821833] =========== WLAN going back to live  ========
[  152.821978] sdio_reset_comm():
[  152.822079] rk29_sdmmc_change_clk_div..1961..  newDiv=40, newCLK=300Khz [sdio]
[  152.828080] rk29_sdmmc_change_clk_div..1961..  newDiv=0, newCLK=24000Khz [sdio]
[  152.828601] dhd_bus_devreset: == WLAN ON ==
[  152.828654] dhd_bus_devreset called when dongle is not in reset
[  152.828717] Will call dhd_bus_start instead
[  152.829192] F1 signature read @0x18000000=0x16044330
[  152.839570] DHD: dongle ram size is set to 294912(orig 294912)
[  152.840620] dhd_bus_select_firmware_name_by_chip: firmware_path=/system/etc/firmware/fw_RK903_ag.bin
[  153.070471] bcmsdh_set_drvdata Enter
[  153.073200] ANDROID-ERROR) wifi_get_mac_addr
[  153.085999] CFG80211-ERROR) wl_cfg80211_attach_post : p2p0: p2p_dev_addr=02:22:f4:d9:84:1f
shell@android:/ $ 

shell@android:/system # lsmod
wlan 458451 0 - Live 0x00000000
gps 161924 0 - Live 0x00000000
vpu_service 11717 0 - Live 0x00000000
rk29_ipp 9957 0 - Live 0x00000000 (C)
mali 112485 5 - Live 0x00000000
ump 27320 15 mali, Live 0x00000000
rk30xxnand_ko 314328 0 - Live 0x00000000
shell@android:/system # 

b. load driver


off-topic:

Bootloader目前就使用RK官方的,反正是不支持传输DTS,不过也不影响学习使用DTS,内核可以自行获取屁股后边的DTS。
Mini2440上也可以使用DTS了,得选一个版本。基于3.10来实现DTS的研究。Ubuntu那个不再弄了。

1.Enable Device Tree Support
menuconfig -> Boot options -> Flattened Device Tree support
(CONFIG_USE_OF)

2.Enable
Use appended device tree blob to zImage (EXPERIMENTAL)
(CONFIG_ARM_APPENDED_DTB) 
这个宏是为了兼容那些还不支持将dts传输给内核的bootloader引导。使用CONFIG_ARM_APPENDED_DTB后你仅仅需要将dts文件紧贴在zImage后边,内核就可以自行加载dts。

3.编译make zImage dtb

From:http://www.slideshare.net/nij05/device-tree-introduction



其它资料:

1.高版本的内核Linux 3.10 on Radxa RockLinux Kernel 3.17

2.从sdcard启动boot from SD card on Radxa Rock

3.RK3188启动流程Boot_Sequences




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RK3188上运行Ubuntu系统 的相关文章

  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • 从 Throwable 获取错误代码 - Android

    我怎样才能从错误代码可投掷 https developer android com reference java lang Throwable html public void onFailure Throwable exception 我
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

    这是我的材质按钮代码
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • Android Webview 图像未加载

    我制作了一个简单的应用程序WebView 但有些图片无法加载 正确 在我的电脑上 错误 在模拟器中 Correct 错误 没有横幅 于是我用Chrome debug进行调试 发现我的代码被改变了 我不添加像noscript or style
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access

随机推荐