【编译安装openssh-10.0p1】
wget https://repo.jing.rocks/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz --no-check-certificate
tar xf openssh-10.0p1.tar.gz
cd openssh-10.0p1
./configure --with-sandbox=no
(必须添加--with-sandbox=no选项,否则sshd-auth程序的kex_ecdh_enc函数里面只要调用openssl库的EC_KEY_generate_key函数就会崩溃,导致putty窗口一打开就闪退)
make
addgroup -S sshd
adduser -G sshd -SDH sshd
(不添加sshd用户的话会报Privilege separation user sshd does not exist错误)
make install
cd ..
查看ssh版本号:ssh -V
查看sshd版本号:sshd -V
输出:OpenSSH_10.0p2, OpenSSL 1.1.1w 11 Sep 2023
事实上10.0p1和10.0p2是同一个版本。
板子连接电脑虚拟机:ssh oct1158@192.168.4.53
sshd服务器允许root用户登录:修改/usr/local/etc/sshd_config文件,#PermitRootLogin prohibit-password改成PermitRootLogin yes。
板子启动sshd服务器:/usr/local/sbin/sshd
关闭sshd服务器:killall sshd
开机自动启动sshd:修改/etc/init.d/rcS文件,在里面添加一句/usr/local/sbin/sshd。
有了sshd服务器,FileZilla就可以连接板子,通过sftp方式浏览、上传和下载板子里面的文件。
【编译安装vim-9.0】
cd ~/software
wget https://ftp.nluug.nl/pub/vim/unix/vim-9.0.tar.bz2 --no-check-certificate
tar xf vim-9.0.tar.bz2
cd vim90
./configure
make
make install
cd ..
如果板子上只安装了libncursesw.so库,没有安装libncurses.so库,那么./configure命令就应该改成./configure LIBS=-lncursesw。
客户端 连接方式 vim是否能对c文件代码着色
putty 串口 否
tera term 串口 否
windows telnet telnet 否
putty telnet 否
tera term telnet 否
putty ssh 是
tera term ssh 是
在ssh模式下,vim可以正常对c文件代码着色,putty和tera term两种ssh客户端都可以。
但是通过串口或者telnet连接板子,vim无法看到代码着色,所有文字都是白色。
【编译sl-5.02】
wget https://github.com/mtoyoda/sl/archive/refs/tags/5.02.tar.gz -O sl-5.02.tar.gz --no-check-certificate
tar xf sl-5.02.tar.gz
cd sl-5.02
make
cd ..
如果板子上只安装了libncursesw.so库,没有安装libncurses.so库,那么在make前必须修改Makefile文件,将里面的-lncurses改成-lncursesw。
【编译安装vsftpd-3.0.5】
mkdir vsftpd
cd vsftpd
[编译安装libnsl-2.0.1]
wget https://github.com/thkukuk/libnsl/releases/download/v2.0.1/libnsl-2.0.1.tar.xz --no-check-certificate
tar xf libnsl-2.0.1.tar.xz
cd libnsl-2.0.1
./configure
make
make install
cd ..
[编译安装vsftpd-3.0.5]
wget https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz --no-check-certificate
tar xf vsftpd-3.0.5.tar.gz
cd vsftpd-3.0.5
make
make install
cd ../..
/usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/../../../../arm-none-linux-gnueabihf/bin/ld: sysdeputil.o: in function `vsf_sysdep_check_auth':
sysdeputil.c:(.text+0x9c): undefined reference to `crypt'
/usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/../../../../arm-none-linux-gnueabihf/bin/ld: sysdeputil.c:(.text+0xb0): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
make: *** [Makefile:29: vsftpd] Error 1
解决办法:修改Makefile文件,第13行LDFLAGS末尾加上 -lcrypt。
创建ftp和nobody用户:
addgroup -S ftp
adduser -G ftp -SD ftp
chmod u-w /home/ftp
addgroup -S nobody
adduser -G nobody -SDH nobody
注意ftp用户要创建/home/ftp目录,而nobody用户不用创建,所以adduser命令添加ftp用户时不带H选项。
/home/ftp是用于匿名用户登录的目录,该目录必须用chmod命令去掉写权限,否则会报500 OOPS: vsftpd: refusing to run with writable root inside chroot()错误。
创建secure_chroot_dir用的文件夹:
mkdir /usr/share/empty
先关闭busybox自带的ftp服务器:
[root@luckfox-rv1106 ~/software]# ps aux | grep ftpd
107 root 0:00 tcpsvd 0 21 ftpd -w /
3056 root 0:00 grep ftpd
[root@luckfox-rv1106 ~/software]# kill -9 107
[root@luckfox-rv1106 ~/software]#
再启动vsftpd服务器:/usr/local/sbin/vsftpd &
可以用telnet localhost 21命令看看有没有报错,进去后可用quit命令退出。
默认情况下只允许匿名登录。
关闭vsftpd服务器:killall vsftpd
复制配置文件到/etc文件夹:cp vsftpd.conf /etc
创建log文件夹:mkdir /var/log
修改/etc/vsftpd.conf文件,取消注释local_enable=YES、write_enable=YES和local_umask=022。
再次启动vsftpd服务器:/usr/local/sbin/vsftpd &
现在的匿名用户和所有的系统用户都可以登录ftp服务器了。
匿名用户的目录是/home/ftp,没有写权限。
root用户和其他用户都有写权限。
与busybox自带的ftp服务器相比,vsftpd服务器有以下不同:
(1)支持匿名。
(2)默认不显示以点开头的隐藏文件。
(3)在windows文件管理器中可正常创建中文文件夹。
开机自动启动vsftpd:修改/etc/init.d/rcS文件,把tcpsvd 0 21 ftpd -w / &改成/usr/local/sbin/vsftpd &。
【编译安装git-2.50.1】
mkdir git
cd git
[编译安装tcl9.0.2]
wget http://prdownloads.sourceforge.net/tcl/tcl9.0.2-src.tar.gz --no-check-certificate
tar xf tcl9.0.2-src.tar.gz
cd tcl9.0.2/unix
./configure
swapon /root/swapfile
make
make install
swapoff /root/swapfile
cd ../..
[编译安装gettext-0.26](用于解决git编译过程中遇到的MSGFMT po/bg.msg问题)
wget https://ftp.gnu.org/pub/gnu/gettext/gettext-0.26.tar.gz --no-check-certificate
tar xf gettext-0.26.tar.gz
cd gettext-0.26
./configure
swapon /root/swapfile
make
make install
swapoff /root/swapfile
ldconfig
cd ..
安装完成后执行一下msgfmt -V试试看能不能打印版本信息。
如果忘记执行ldconfig,就会报msgfmt: error while loading shared libraries: libgettextsrc-0.26.so: cannot open shared object file: No such file or directory的错误。
[编译安装git-2.50.1]
wget https://www.kernel.org/pub/software/scm/git/git-2.50.1.tar.gz --no-check-certificate
tar xf git-2.50.1.tar.gz
cd git-2.50.1
./configure
make
make install
cd ../..
[测试git命令]
查看git版本:git -v
输出git version 2.50.1。
关闭https证书验证:git config --global http.sslVerify false
下载一个git项目:
cd ~/test
swapon /root/swapfile
git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
cd luckfox-pico
git reset --hard a984090f0620bf643c990422747d7306f6c82857
swapoff /root/swapfile
[root@luckfox-rv1106 ~/test]# git clone https://gitee.com/LuckfoxTECH/luckfox-pi
co.git
Cloning into 'luckfox-pico'...
remote: Enumerating objects: 134125, done.
remote: Counting objects: 100% (134125/134125), done.
remote: Compressing objects: 100% (102932/102932), done.
remote: Total 134125 (delta 30057), reused 133273 (delta 29205), pack-reused 0 (from 0)
Receiving objects: 100% (134125/134125), 1004.17 MiB | 1.85 MiB/s, done.
Resolving deltas: 100% (30057/30057), done.
Updating files: 100% (119275/119275), done.
[root@luckfox-rv1106 ~/test]# cd luckfox-pico
[root@luckfox-rv1106 ~/test/luckfox-pico]# git reset --hard a984090f0620bf643c99
0422747d7306f6c82857
Updating files: 100% (304/304), done.
HEAD is now at a984090f0 Pullrequest for Luckfox Pico Pi (#246)
[root@luckfox-rv1106 ~/test/luckfox-pico]#
由于幸狐内核镜像里面有许多程序(如boot_merger)是不开源的,只提供了可执行程序文件,这些程序文件只能在64位电脑虚拟机上运行,所以没有办法在arm板子上编译幸狐镜像。
不像迅为itop4412开发板,uboot、linux内核、设备树和根文件系统全是开源的,全部可以在板子上编译,然后用dd命令烧写到emmc或sd卡上。
[root@luckfox-rv1106 ~/test/luckfox-pico]# file sysdrv/source/uboot/rkbin/tools/
boot_merger
sysdrv/source/uboot/rkbin/tools/boot_merger: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=0569907bcbbe5048725adb9e03bf4ea6d6d3cd31, for GNU/Linux 3.2.0, not stripped
[root@luckfox-rv1106 ~/test/luckfox-pico]# sysdrv/source/uboot/rkbin/tools/boot_
merger
sysdrv/source/uboot/rkbin/tools/boot_merger: line 2: syntax error: unexpected "("
[root@luckfox-rv1106 ~/test/luckfox-pico]#
用git log命令查看提交历史:
在幸狐RV1106板子上用gcc14.2本地编译安装samba-4.22.3服务器:https://blog.csdn.net/ZLK1214/article/details/149814242