标签: arm

ZONE_NORMAL 和它与内核/用户页面的关联?

图表

以上是我只有 512 MB 物理内存的情况。到目前为止,我读到的是 ZONE_NORMAL 映射到内核虚拟地址空间,如图所示。基本上我有一个 512 MB 的物理内存,其中 496 MB 的 ZONE_NORMAL 映射到内核虚拟空间。基于这种理解,以下是我的问题:

  • ZONE_NORMAL 是否包含内核空间页面?
  • 如果ZONE_NORMAL只由内核页,并映射完全到内核空间的虚拟地址范围,你在哪里的用户空间页面获得所在?物理内存中的用户空间页面似乎没有任何空间。

我完全混淆了物理内存小于 4GB 的情况,如我提出的这种情况所示。

如果有人能对此有所了解,我将不胜感激。

linux drivers kernel memory arm

6
推荐指数
1
解决办法
2329
查看次数

即使更新了 ld.so.conf 也找不到共享库

$ sudo ldconfig -v|grep libOpenNI
355: libOpenNI2.so -> libOpenNI2.so
Run Code Online (Sandbox Code Playgroud)

但是当我执行程序时,我得到了

./SimpleRead: error while loading shared libraries: libOpenNI2.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

奇怪的?!!

linux arm debian libraries dynamic-linking

6
推荐指数
1
解决办法
3994
查看次数

如何在android chroot中运行docker

我在 chroot 环境中的 arm64 android 手机中安装了 debian stretch。我已经按照这里的这些步骤安装了 docker-ce 。

在启动泊坞窗时:: systemctl start docker

返回此错误:: Running in chroot, ignoring request.

使用service docker status节目 检查[FAIL] Docker is not running ... failed!

如何在我的 android 手机上的 chroot 中运行它?

chroot arm debian android docker

6
推荐指数
1
解决办法
1282
查看次数

如何删除 sysV 服务的 systemd 包装器脚本并改用单元文件?

我正在尝试取消配置或删除systemd旧 sysV 服务的包装器脚本。包装器由 Debian 软件包提供,所以我不能删除它。

包装器显示为工件并列为“生成”

$ systemctl list-unit-files | grep -i -E 'rng|rand'
rng-tools.service                      generated
systemd-random-seed.service            static
urandom.service                        static
Run Code Online (Sandbox Code Playgroud)

systemd根据创建和修改 systemd 单元文件添加了一个新服务来替换它:

# touch /etc/systemd/system/rng-tools.service
# chmod 664 /etc/systemd/system/rng-tools.service
# emacs /etc/systemd/system/rng-tools.service
<edit file>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试启用新的服务文件时,将使用旧的 sysV 脚本:

# systemctl enable rng-tools
Synchronizing state of rng-tools.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rng-tools
Run Code Online (Sandbox Code Playgroud)

搜索结果为 0 次命中以删除旧包装器。我得到了很多类似的点击,比如创建一个包装脚本。但我还没有找到有关从systemd的数据库中删除一个的信息。

如何取消配置或删除 sysV 服务的 systemd 包装器脚本?


这是斯蒂芬建议后的结果。rng-tools.service正在使用新的:

$ systemctl status …
Run Code Online (Sandbox Code Playgroud)

linux arm debian systemd

6
推荐指数
1
解决办法
3004
查看次数

ARM 处理器的 Linux 发行版

是否有任何适用于 ARM 处理器的 Linux 发行版(Backtrack 和 Android 除外)?特别是 ARM 11 (SE Xperia X8)

linux arm distribution-choice

5
推荐指数
2
解决办法
1万
查看次数

是否可以在 Android 手机上安装自定义 Linux?

我有一部 Xperia X8 手机,我想知道是否可以在其上安装非 Android Linux 操作系统?我想要一个轻量级的 Linux 发行版,比如 Kolibri 之类的。

linux arm android

5
推荐指数
1
解决办法
1921
查看次数

将 OpenSSL-1.0.1e 向后移植到 Debian Lenny (armv4l)

我有一个仅支持 Debian Lenny 的旧嵌入式板。我需要在上面安装OpenSSL-1.0.1e。如果我下载源代码然后尝试编译源代码,我会收到这个错误

ts7500:/home/openssl-1.0.1e# make
making all in crypto...
make[1]: Entering directory `/home/openssl-1.0.1e/crypto'
gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DTERMIO -O3 -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM   -c -o armcap.o armcap.c
In file included from armcap.c:8:
arm_arch.h:35:5: error: #error "unsupported ARM architecture"
make[1]: *** [armcap.o] Error 1
make[1]: Leaving directory `/home/openssl-1.0.1e/crypto'
make: *** [build_crypto] Error 1
Run Code Online (Sandbox Code Playgroud)

我怎样才能克服这个错误?

Note: ts7500:/home/openssl-1.0.1e# `uname -a`
Linux ts7500 3.4.0 #83 Sun May 26 …
Run Code Online (Sandbox Code Playgroud)

linux compiling arm cross-compilation openssl

5
推荐指数
1
解决办法
2008
查看次数

内核启动在“Uncompressing Linux...”之后立即停止

我正在尝试提出一个基于 ARM 的板。我有 U-Boot 工作,但似乎无法加载内核。大多数情况下,它只会:

Starting kernel ...

Uncompressing Linux...
Run Code Online (Sandbox Code Playgroud)

在玩 U-Boot 环境设置时,它跟进了几次:

uncompression error

 -- System halted
Run Code Online (Sandbox Code Playgroud)

我发现一些线程建议使用 LZO 压缩而不是 GZIP,所以我重新配置了内核,但现在它收到 LZO 压缩错误消息:

Compressed data violation

 -- System halted
Run Code Online (Sandbox Code Playgroud)

任何建议我如何尝试调试它?我已经在内核中启用了 DEBUG_LL 和 printk,但这些根本没有为我服务。

linux kernel arm u-boot

5
推荐指数
1
解决办法
6069
查看次数

绑定 I2C 设备驱动程序

我正在尝试使用 TCA8418 键盘(通过 I2C 运行)并且我已将驱动程序加载到内核中,但无法识别该设备,因此我自己实例化它并且无法绑定驱动程序。我收到以下错误:

# echo -n "1-0034" > /sys/bus/i2c/drivers/tca8418_keypad/bind
-bash: echo: write error: No such device
Run Code Online (Sandbox Code Playgroud)

这是在尝试以下操作之后(以 root 身份):

# echo -n "tca8418_keypad" 0x34 > /sys/bus/i2c/devices/i2c-1/new_device
Run Code Online (Sandbox Code Playgroud)

我分别有以下设备和驱动程序树:

/sys/bus/i2c/devices/1-0034
|-- modalias
|-- name
|-- power
|   |-- autosuspend_delay_ms
|   |-- control
|   |-- runtime_active_time
|   |-- runtime_status
|   `-- runtime_suspended_time
|-- subsystem -> ../../../../../bus/i2c
`-- uevent

/sys/bus/i2c/drivers/tca8418_keypad
|-- bind
|-- module -> ../../../../module/tca8418_keypad
|-- uevent
`-- unbind
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已使用以下内容作为参考,但似乎都没有完全奏效:

我已经没有想法了,可以使用一些建议。我什至以正确的方式接近这个吗?

如果重要的话,我正在 ARM 单板计算机上运行 Debian。

编辑:

从那以后,我发现在实例化新设备时收到以下错误: …

linux drivers arm devices

5
推荐指数
1
解决办法
5498
查看次数

使用 u-boot 获取大端 Linux 构建以在 ARM 上启动

I\xe2\x80\x99m 试图为 ARM 制作一个大端的 Linux 发行版。由于我在 Gentoo 上\xe2\x80\x99m,交叉编译再简单不过了。我\xe2\x80\x99已经构建了所有这些,但后来陷入了让它/内核启动的困境。

\n\n

I\xe2\x80\x99m 针对采用 AllWinner A10 CPU 的 Cubieboard。我使用 u-boot 作为引导加载程序。由于 u-boot 不\xe2\x80\x99t 支持大端 ARM,因此我在将控制权传递给内核之前对其进行了修补:

\n\n
diff -Naur u-boot-2016.01-1/arch/arm/lib/bootm.c u-boot-2016.01-2/arch/arm/lib/bootm.c\n--- u-boot-2016.01-1/arch/arm/lib/bootm.c       2016-01-12 15:06:54.000000000 +0100\n+++ u-boot-2016.01-2/arch/arm/lib/bootm.c       2017-07-09 14:13:29.675865446 +0200\n@@ -315,7 +315,16 @@\n                                                          0, machid, r2);\n                } else\n #endif\n+               {\n+                       {\n+                               unsigned long v;\n+                               __asm volatile ("mrc p15, 0, %0, c1, c0, 0\\n\\t"\n+                                               "orr %0, %0, #(1 << 7)\\n\\t" /* Switch to bigendian */\n+                                               "mcr p15, 0, %0, c1, c0, 0" : "=&r" (v));\n+                       }\n+\n …
Run Code Online (Sandbox Code Playgroud)

arm u-boot linux-kernel cubieboard

5
推荐指数
1
解决办法
2160
查看次数