如何把openwrt的ipk软件包安装到ubuntu上

前提:都是arm64的架构的软件包。

下载openwrt的ipk软件包

1. 从https://pkgs.org/ 查找下载软件包:

本文以swconfig软件包为例,下载swconfig和相关的依赖软件包:

swconfig_12_aarch64_cortex-a72.ipk

libuci20130104_2021-10-22-f84f49f0-6_aarch64_cortex-a72.ipk

libubox20220515_2022-05-15-d2223ef9-1_aarch64_cortex-a72.ipk

libnl-tiny1_2021-11-21-8e0555fb-1_aarch64_cortex-a72.ipk

uci_2021-10-22-f84f49f0-6_aarch64_cortex-a72.ipk (可选,用于测试)

2. 解压回档文件:

如上图所示把ipk的软件包解压,提出出data.tar, 然后把所有的data.tar解压到一个tmp_rootfs的目录夹,这个目录夹就是我们最后要复制到ubuntu系统中的文件结构。

运行问题处理

上传程序之后出现程序无法运行的情况,如上图所示。

  1. 修改libc.so格式问题:

目前大多是ubuntu的发行版用的是glibc, /lib/aarch64-linux-gnu/libc.so 为一个ASCII text的,里面包含了真正的库文件路径和名称:

使用strace分析ldd的装在过程:strace -f -s 1024 ldd itgw/bin/swconfig,可以看到如下查找libc.so的过程

再查看系统当前的libc的情况:

把ubuntu系统中的/lib/aarch64-linux-gnu/libc-2.31.so复制到sw-rootfs的安装包里,和执行程序放在一个位置,之后执行swconfgi时,只要在swconfgi坐在的目录去执行程序,自动的就会使用当前路径下的libc.so,而不会去使用根目录下的/lib/aarch64-linux-gnu/libc.so这个ASCII text。

添加运行时的环境变量脚本,指定对应的lib查找路径:

  1. 修改ld版本问题:

cp -rf /lib/ld-linux-aarch64.so.1 /lib/ld-musl-aarch64.so.1复制一个musl名称的文件名。

制作安装打包脚本

  1. 安装脚本:
    root@easyHome:/home/forlinx/test/sw-config# cat sw-install.sh
    #!/bin/bash
    
    
    basepath=$(cd `dirname $0`; pwd)
    
    if [ "$1" != "-f" ]; then
            echo "$basepath"
            old_md5=`md5sum /xxx/switch/swconfig | awk '{printf $1}'`
            new_md5=`md5sum "$basepath"/xxx/switch/swconfig | awk '{printf $1}'`
            if [ "$old_md5" == "$new_md5" ];then
                    echo "same file, skip the install..."
                    exit 1
            fi
    
    else
            echo "force to update"
    fi
    
    echo "start to install swconfig..."
    echo "$basepath...."
    cd $basepath
    cp -rf * /
    rm -r /sw-install.sh
    
    echo "create the openwrt's running EVN..."
    cp -rf /lib/ld-linux-aarch64.so.1 /lib/ld-musl-aarch64.so.1
    cp /lib/aarch64-linux-gnu/libc.so.6 /itgw/switch/usr/local/lib/libc.so
    ldconfig
    ldconfig
    echo "enable inspur-switch service..."
    systemctl enable inspur-switch

2. 打包文件结构:

root@easyHome:/home/forlinx/test/sw-config# tree
.
├── etc
│   ├── netplan
│   │   └── 00-netcfg.yaml
│   └── uci-defaults
├── xxx
│   └── switch
│       ├── sw-config.sh
│       ├── sw-env.sh
│       ├── swconfig
│       ├── uci
│       └── usr
│           └── local
│               └── lib
│                   ├── libc.so
│                   ├── libnl-tiny.so
│                   ├── libubox.so -> libubox.so.20220515
│                   ├── libubox.so.20220515
│                   └── libuci.so
├── sw-install.sh
└── usr
    └── lib
        ├── config
        │   └── uci.sh
        ├── network
        │   └── switch.sh
        └── systemd
            └── system
                └── inspur-switch.service

14 directories, 14 files

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenWrt是一个基于Linux的嵌入式操作系统,用于路由器和其他网络设备。IPKOpenWrt系统使用的软件包格式,类似于Debian系统的DEB包。在OpenWrt中,我们可以通过多种方法下载和安装IPK软件包。 首先,我们可以使用OpenWrt系统自带的包管理器opkg来下载和安装IPK软件包。在终端中输入以下命令可以更新软件包列表: ``` opkg update ``` 然后,使用以下命令来搜索特定的IPK软件包: ``` opkg list | grep keyword ``` 将"keyword"替换为您要搜索的软件包关键字。然后,可以使用以下命令来安装特定的IPK软件包: ``` opkg install package_name ``` 将"package_name"替换为您要安装软件包名称。 此外,您还可以通过OpenWrt官方网站或其他第三方软件源下载IPK软件包。访问OpenWrt官方网站(https://openwrt.org/packages/start)的软件包页面,可以通过搜索或浏览不同的软件包类别来找到所需的软件包。选择所需的软件包后,下载相应的IPK文件即可。 下载完成后,将IPK文件传输到OpenWrt设备上。可以使用SSH或SCP等工具将文件传输到设备的/tmp目录下。然后,在设备上使用以下命令来安装IPK软件包: ``` opkg install /tmp/package_file.ipk ``` 将"package_file.ipk"替换为您下载的IPK软件包的文件名。 综上所述,要下载OpenWrtIPK软件包,您可以使用系统自带的opkg包管理器,或者从OpenWrt官方网站或其他第三方软件源下载IPK文件。然后,将IPK文件传输到设备上,并使用opkg命令进行安装。 ### 回答2: OpenWrt是一个基于Linux的操作系统,用于嵌入式设备,如路由器。它提供了许多功能和插件来增强路由器的性能和功能。IPKOpenWrt中用于安装软件包的一种文件格式。 在OpenWrt中,您可以通过几种方式下载IPK文件。首先,您可以直接从OpenWrt官方软件仓库下载IPK文件。通过访问OpenWrt的官方网站,您可以找到软件包列表,并从中选择所需软件包。找到所需软件包后,您可以点击下载链接,并将其保存到您的计算机中。 另一种下载IPK文件的方式是使用opkg命令。opkg是OpenWrt中的软件包管理工具之一。通过SSH登录到您的OpenWrt设备,然后使用opkg命令来搜索和下载软件包。例如,您可以使用"opkg update"命令来更新软件包列表,然后使用"opkg install <package_name>"命令来安装所需的软件包。 此外,您还可以使用第三方软件进行IPK文件的下载。有一些软件,如Wget和Curl,可以在OpenWrt设备上使用,并通过指定下载链接来下载IPK文件。 无论您使用哪种方式进行IPK文件的下载,确保您从可信赖的来源获取IPK文件。此外,还要确保所下载的IPK文件与您正在使用的OpenWrt版本兼容,以避免任何兼容性问题。最后,记得在下载和安装IPK文件之前备份您的设备数据,以防万一出现问题。 ### 回答3: OpenWRT是一个开源的路由器固件,它提供了更多高级的功能和定制选项。在OpenWRT安装软件包可以扩展该固件的功能。 为了下载和安装OpenWRT软件包(.ipk文件),你可以按照以下步骤进行操作: 1. 首先,确定使用的OpenWRT版本。可以在OpenWRT官方网站或OpenWRT支持论坛上找到相关信息。选择与你的设备兼容的版本。 2. 找到OpenWRT软件包的官方源。官方源是存储OpenWRT软件包的服务器,其中包含了各种可用的软件包。可以在OpenWRT官方网站上找到官方源的链接或者通过搜索引擎搜索。 3. 打开命令行终端或SSH连接到OpenWRT设备。确保设备已经连接到互联网。 4. 使用wget命令下载所需软件包的.ipk文件。例如,假设要下载名为"package_name"的软件包,可以使用以下命令:wget http://官方源的链接/package_name.ipk 5. 下载完成后,可以使用命令opkg install package_name.ipk进行安装。在安装过程中,会自动解决软件包的依赖关系并完成安装。 请注意,下载和安装OpenWRT软件包需要一定的技术知识和操作经验。在进行任何操作之前,请仔细阅读OpenWRT官方文档以确保正确操作,并确保软件包的来源可信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值