嵌入式Linux设置PATH

简介:

博主现在所做开发的平台为一个Realtek的SDK。由于某些需要,要将 /usr/local/bin 加入到 PATH 环境变量中。

该嵌入式Linux的文件系统中没有 /etc/profile 类似的文件,只有 /etc/rcS。博主发现在 /etc/rcS 里添加 `PATH=$PATH:/usr/local/bin` 并没能使之在串口终端上生效。

博主思来想去,为什么系统默认 PATH 就是:`/bin:/sbin/:/usr/bin` ?在哪指定的?

博主最终在 busybox 中找到原由。由于嵌入式Linux系统启动后调用的 init 命令其实就是 busybox 中的一个子命令。

110204_r6oM_243525.png

在 init 命令中,对系统进行初始化。其中就包括了 PATH 环境变量。

在busybox/libbb/messages.c 中有如下:

14110446_TItq.jpg

可以看出,如果我们想再添加了一个路径,就要改 BB_ADDITIONAL_PATH 宏。

而这个宏在 busybox/include/platform.h 中定义:

14110446_4390.jpg

这个好像只是针对 Android 平台的。

如果上面没有对 `BB_ADDITIONAL_PATH` 进行定义,那么在 busybox/libbb/messages.c 中会默认定义它,只是默认为空。

我们在这里改一下:

14110447_XT4Z.jpg

如此以来,系统启动后,PATH的值便是:"/sbin:/usr/sbin/:/bin:/usr/bin:/usr/local/bin" 了。

目录
相关文章
|
18天前
|
存储 安全 Linux
|
2天前
|
域名解析 负载均衡 网络协议
|
13天前
|
运维 程序员 Linux
运维最全Linux 基本防火墙设置和开放端口命令,2024年最新程序员如何自我学习和成长
运维最全Linux 基本防火墙设置和开放端口命令,2024年最新程序员如何自我学习和成长
|
18天前
|
存储 Linux C++
【Linux】详解信号的保存&&信号屏蔽字的设置
【Linux】详解信号的保存&&信号屏蔽字的设置
|
18天前
|
存储 安全 Linux
从基础到高级:Linux用户与用户组权限设置详解
从基础到高级:Linux用户与用户组权限设置详解
|
18天前
|
Linux
linux设置全局命令
linux设置全局命令
13 0
|
18天前
|
Linux Apache
Linux设置开机启动
以上步骤允许您在Linux系统上配置开机启动服务或程序。确保将"service-name"替换为实际要配置的服务或程序的名称。
26 0
|
18天前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
该文指出了学习嵌入式Linux开发的两个常见误区。一是过分专注于学习桌面或服务器版Linux,而非关注嵌入式开发本身,实际上只需熟悉基本操作即可。二是试图在没有基础的情况下直接阅读Linux内核源代码,这是不切实际的,应先建立基础知识再进行源码学习。文章还提到了在嵌入式系统中获取和处理屏幕数据的示例,包括使用gsnap工具将framebuffer数据转为图像,以及涉及的交叉编译过程。
14 0
|
18天前
|
存储 Linux Shell
【进厂修炼 - Second week】Linux服务及用户设置
【进厂修炼 - Second week】Linux服务及用户设置
|
18天前
|
Linux Shell 开发工具
linux如何设置服务自启
linux如何设置服务自启
21 0