
Linux
文章平均质量分 69
巨大八爪鱼
喜欢Win32和STM32编程
展开
-
编译linux内核或模块时遇到错误不显示报错信息的解决办法
事实上,在编译内核模块时,就算make命令没带CROSS_COMPILE=参数,M=参数肯定是必须带的。我们很难保证M参数里面没有s这个字符。在这句命令中,“driver_test”就含有s字符,所以就会触发安静模式。编译内核模块时,只显示最底部的Error,不显示任何C语言的错误信息。编译通过了,CC MODPOST LD等字样也能正常显示了。注释掉内核根目录的Makefile文件里面的下面三句话。make命令中含有s字符,导致进入了安静模式。可见这个表达式含有s字符。修改后就有错误信息输出了。原创 2025-03-13 20:02:45 · 1093 阅读 · 0 评论 -
关于centos7自带的nginx1.20.1开启https后,XP系统的IE6和IE8无法显示网页的问题
改为ssl_ciphers HIGH:MEDIUM:!添加一行ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;CentOS7默认开启了HTTP/2,但没有开启TLS1.3,以及IE6和IE8的https访问。CentOS7自带的nginx-1.20.1是支持HTTP/2和TLS1.3的。软件包名称:nginx-1.20.1-10.el7.x86_64。原创 2024-07-08 21:03:44 · 347 阅读 · 0 评论 -
Ubuntu14.04安装2024年最新版apache-2.4.59+openssl-1.1.1w+php-8.3.6,并启用https和HTTP2,且XP系统下的IE6和IE8能正常访问https
请注意,win2000的IE5-6和XP的IE6-8都只能识别apache里面配置的第一本证书,通常为/opt/httpd-2.4.59/conf/extra/httpd-ssl.conf里面配置的证书文件,无法识别写到第一本证书后面的其他证书文件(比如其他VirtualHost虚拟主机里面单独配置的证书文件),也就是说同一个IP地址只能用一本证书。买的证书装到apache上面,xp的ie6可以识别,但win2000的ie5和ie6都识别不了,直接提示无法显示网页。自己源码编译安装的则是daemon。原创 2024-04-24 20:26:38 · 1848 阅读 · 0 评论 -
关于centos8自带的apache2.4开启https后,XP系统的IE6和IE8无法显示网页的问题
在/etc/ld.so.conf.d文件夹中新建一个mynewssl.conf文件,内容为/opt/openssl-1.0.1f/lib。访问 http://xxx.com 自动跳转到 https://xxx.com ,出来的是/home/xxx/xxx下的网站。在/opt/httpd-2.2.23/conf/httpd.conf末尾加入。【配置虚拟主机:/home/xxx/xxx/config/xxx.conf】打开/opt/httpd-2.2.23/conf/httpd.conf,将。原创 2024-04-08 19:51:02 · 1123 阅读 · 0 评论 -
apache2.4设置完一个VirtualHost后,所有的域名和IP地址都变成访问这个VirtualHost的解决办法
apache2.4设置完一个VirtualHost(如www.example.com)后,所有的域名(如localhost)和IP地址都变成访问这个VirtualHost。默认的DocumentRoot /var/www/html无效了。然后重启apache服务器即可。原创 2024-03-23 20:27:26 · 644 阅读 · 0 评论 -
git常用操作
如git clone "ssh://oct1158@www.example.com/home/hahaha/xxxxx.git" my_folder。刚才的git clone是下载一份全新的代码,而git pull origin是只下载最近添加和改动的文件。git clone "ssh://用户名@域名/服务器上的项目路径.git" 要下载到哪个文件夹里面。git init是在服务器上创建新项目,git clone是从服务器上下载已有项目的代码到本地。密钥文件不能是.ppk格式!只能是id_rsa格式。原创 2024-03-23 12:10:31 · 535 阅读 · 0 评论 -
ubuntu10.04 apache2.2开启tls1.2的支持,使现代的edge和firefox浏览器能正常访问https
在浏览器里面下载https://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz (wget命令不好使了)在/etc/ld.so.conf.d文件夹中新建一个mynewssl.conf文件,内容为/usr/local/ssl/lib。我们自己源码编译安装的默认是/usr/local/apache2和/usr/local/ssl,两者是分开的。打开/usr/local/apache2/conf/httpd.conf,将。原创 2024-03-20 22:03:30 · 1535 阅读 · 0 评论 -
IMX6ULL实现linux系统下用hrtimer扫描8位数码管
例如,串口命令行空闲时,数码管扫描速度非常慢,几秒钟才扫描一位。linux系统后台有很多任务,如果我们想要在嵌入式linux环境下实现扫描数码管,并且要求任何情况下,无论linux系统在干什么事情,数码管都不能闪烁,只要肉眼看到一次闪烁就不合格,那就必须采用定时器中断的方式扫描。正点原子的教程上讲了linux下的struct timer_list定时器,这个定时器是基于系统tick值的,最小时间单位是10ms,而且实际还有更大的误差,这显然不能满足要求,用这个频率扫描数码管太慢了,数码管闪烁严重!原创 2022-09-21 23:55:53 · 879 阅读 · 0 评论 -
of_find_compatible_node查找出所有的节点
要点:(1)第一次调用of_find_compatible_node的时候,第一个参数为NULL(2)后续第n次调用of_find_compatible_node,第一个参数为第n-1次调用of_find_compatible_node的返回值(3)of_find_compatible_node的返回值node,使用完毕后必须调用of_find_compatible_node或of_node_put释放掉程序运行结果:...原创 2022-06-05 18:50:39 · 2841 阅读 · 1 评论 -
在struct file_operations结构体中获取struct cdev,struct device以及自定义数据结构
在正点原子的linux驱动教程中,dev_t设备号、struct cdev、struct class、struct device等结构体都是存放在一个自定义结构体中的,并不是定义成全局变量。这个自定义结构体所占用的内存则是在probe函数中由kzalloc函数分配,例如:struct test_data{ struct gpio_desc *gpios[4]; dev_t devid; u8 devid_valid; struct cdev cdev; struct class *clas原创 2022-05-21 16:18:08 · 1271 阅读 · 1 评论 -
关于设备树里面pinctrl的属性不能生效的问题
Linux下gpio(旧API)和gpiod(新API)子系统主要负责配置GPIO的输入/输出方向,读取输入的电平,和设置输出的电平。pinctrl子系统主要负责设置gpio其他方面的东西,比如配置复用功能(alternate function),配置上下拉电阻,推挽输出或开漏输出,配置输出速度等等。本人阅读了正点原子imx6ull开发板手册“【正点原子】阿尔法Linux开发板(A盘)-基础资料/09、文档教程(非常重要)/【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf”里面的“原创 2022-04-24 22:29:41 · 2619 阅读 · 0 评论 -
正点原子阿尔法Linux开发板移植Ubuntu18.04根文件系统问题解决
本文参考资料:https://blog.youkuaiyun.com/weixin_41608556/article/details/118253137笔者的板子处于出厂状态,uboot和linux内核都是放在emmc上的,板子开机从emmc启动uboot。但ubuntu根文件系统是放在SD卡的一个ext4分区上的,不是以镜像的方式存在。插上SD卡,板子从emmc启动uboot后马上按下回车键进入uboot命令模式,执行:setenv mmcroot /dev/mmcblk0p4 rootwait rwbo原创 2022-03-05 17:04:16 · 3201 阅读 · 0 评论 -
ROS actionlib库里面取消目标操作(cancelGoal)的方法
client里面,在30%进度的时候,调用cancelGoal()取消操作:#include <actionlib/client/simple_action_client.h>#include <hello_world/DoDishesAction.h>typedef actionlib::SimpleActionClient<hello_world::DoDishesAction> Client;static Client *client_ptr;s原创 2022-01-24 19:42:52 · 2773 阅读 · 1 评论 -
uboot里面size命令的用法
size命令用于获取文件的大小。命令格式:size 设备名 设备号:分区号 文件名获取到的文件大小是存放在环境变量filesize里面的,用printenv filesize命令查看。u-boot # size mmc 1:3 scripts/update_time.shu-boot # echo $?0u-boot # printenv filesizefilesize=8emmc 1:3表示mmc1的第三分区。u-boot # size mmc 1:2 bin/busybox原创 2021-10-29 20:06:31 · 972 阅读 · 0 评论 -
探究hyyoxhk移植的uboot-2017.11无法从eMMC启动的原因
本人下载了优快云博主hyyoxhk移植的适用于迅为itop4412精英版SCP 1GB的uboot,他这个uboot能成功从SD卡启动,然后读取保存在SD卡里面的linux内核并运行,但是却无法从emmc启动。于是,笔者开始探究他移植的这个uboot为什么不能从emmc启动。打开uboot debug调试首先第一步就是打开DEBUG调试功能,看看uboot输出的调试信息,以便分析程序的运行流程。(1)修改include/configs/itop4412.h文件,在末尾添加#define DE原创 2021-10-14 00:30:19 · 3279 阅读 · 2 评论 -
XP系统下无法访问Samba服务器的解决办法
本人在迅为itop4412 scp 1GB精英版开发板上用gcc10.3本地编译安装了samba-4.14.7,编译时的配置选项为./configure --without-gpgme。samba服务器启动后,Windows 7和Windows 10都能正常访问,但Windows XP却无法访问,提示找不到服务器,如下图所示。解决方案是,修改samba的配置文件(/usr/local/samba/etc/smb.conf)文件,找到[global]将workgroup的值设为WORKGROUP原创 2021-10-02 16:19:22 · 4343 阅读 · 0 评论 -
【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(五)
[上一篇]编译能在板子上运行的GCC编译器和GDB调试器在板子上运行Java使用ntp软件包通过网络更新系统时间安装Bash shell见GCC编译器专题文章:【教程】制作能在ARM板上直接运行的gcc本地编译器_ZLK1214的专栏-优快云博客编译好的程序的下载链接:百度网盘 请输入提取码(提取码:ocmm)概述通常情况下,我们是在电脑里面开一个Linux虚拟机, 在虚拟机里面用交叉编译工具链编译好可执行文件后,将可执行文件拷贝到板子里面运行。也就是说,我们是用电脑上运行的gcc编译ARM原创 2021-09-26 17:20:08 · 1248 阅读 · 0 评论 -
解决嵌入式Linux里面vim编辑器没有颜色的问题
TERM环境变量的默认值是vt102,我们需要将其修改为xterm。修改/etc/profile文件,在里面加一句:export TERM=xterm然后重新连接putty,vim就有颜色了:而且sl程序也能正常跑小火车:原创 2021-09-18 20:35:38 · 1073 阅读 · 0 评论 -
最小linux系统下rosdep init和rosdepc init都更新失败的解决办法
本人用的开发板是迅为itop4412精英版SCP 1GB。CPU芯片是exynos4412。本人在开发板上搭建了Linux最小系统,将gcc10.3.0编译器移植到开发板上运行后,本地编译安装了python2.7.18。然后准备搭建ros环境。按官网上的说明来,先安装python的包管理器pip,然后看Generic (pip)那一栏:pip install -U rosdep rosinstall_generator vcstool rosinstallpip install --upgrade原创 2021-09-16 12:31:58 · 1426 阅读 · 0 评论 -
嵌入式Linux Busybox创建用户后无法登录的解决方案
先用addgroup命令添加一个mysql组:addgroup -S mysql再用adduser命令添加一个mysql用户:adduser -S -G mysql -s /bin/sh mysql(-S表示组号或用户号从100开始,不加-S那就从1000开始)设置密码:passwd mysql完了之后,su mysql登录,结果提示:[root@exynos4412 /]# su mysqlsu: can't execute '/bin/sh': Permission denied在电脑上用原创 2021-09-15 22:48:13 · 1323 阅读 · 1 评论 -
GCC能否运行于ARM-Linux环境下?即GCC能否在ARM平台上运行?
当然可以,本人已成功编译出能在迅为itop4412开发板(exynos4412 cpu)上运行的gcc 10.3.0编译器!CPU:exynos4412 4核 ARMv7-A架构 Cortex-A9系列 32位有了这样的gcc本地编译器,就可以像使用PC机一样使用板子,在板子上源码编译安装软件。任何软件的安装,都只有以下四步:第一步 去官网下载源码包第二步 ./configure或cmake .第三步 make第四步 make install在板子上安装软件,一下子变得非常简单了,再也不原创 2021-09-15 15:20:29 · 933 阅读 · 0 评论 -
【教程】制作能在ARM板上直接运行的gcc本地编译器
编译好的程序的下载链接:百度网盘 请输入提取码(提取码:ocmm)概述通常情况下,我们是在电脑里面开一个Linux虚拟机, 在虚拟机里面用交叉编译工具链编译好可执行文件后,将可执行文件拷贝到板子里面运行。也就是说,我们是用电脑上运行的gcc编译ARM板子上运行的程序,即交叉编译。对于用automake制作的软件包来说,有时候交叉编译会非常麻烦。Linux系统下绝大部分软件包都是automake制作的。交叉编译小型的软件,如make、file、mlocate这种还比较简单。但是如果是apache、原创 2021-09-13 15:21:40 · 15072 阅读 · 27 评论 -
关于file命令报错找不到magic文件的问题
嵌入式板子上执行file命令,提示file: could not find any valid magic files! (No such file or directory)这是因为板子上file软件包没有在正确的路径下安装。正常情况下,如果configure的时候不指定--prefix选项,那么--prefix的默认值为/usr/local(可通过./configure -h看到)也就是说file软件默认是安装在/usr/local目录下的,magic.mgc文件应该放到/usr/local/s原创 2021-09-13 10:12:13 · 2987 阅读 · 0 评论 -
【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(四)
[上一篇]配置用户账户到目前为止,我们的最小Linux系统里面还没有任何用户账户,就连root账户也没有。我们执行whoami命令查看当前登录的用户,提示找不到0号用户:/ # whoamiwhoami: unknown uid 0用ls -l命令查看文件列表时,也只能看用户和组的ID号(root用户id为0),看不到名称:/ # ls -l roottotal 28-rwxr-xr-x 1 0 0 170 Jan 1 00:1原创 2021-09-03 21:41:52 · 1927 阅读 · 2 评论 -
【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(三)
在上一篇文章中,我们编译了linux内核、设备树和busybox根文件系统,成功启动了我们的最小Linux系统。接下来我们在这个最小Linux系统下运行一个Hello World C程序试试看。运行Hello World C程序将SD卡插到电脑虚拟机里面,进入ext4分区的root目录,以sudo方式创建一个hello文件夹,然后把这两个文件夹的所有者和所属组改成Linux虚拟机的当前用户,我们在文件管理器里面就有操作这个文件夹的权限了。[oct1158@fedora root]$ sudo原创 2021-08-28 15:45:46 · 1243 阅读 · 0 评论 -
【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(二)
在上一篇,我们用选择的交叉编译器成功编译了uboot,并在开发板上运行成功。接下来,我们还要编译内核、设备树和文件系统。编译Linux内核[本文参考资料:移植linux4.14内核到4412开发板(衡山法师)]去Linux内核官网下载Linux4.14.2版本的内核压缩包,压缩包的文件名为linux-4.14.2.tar.gz。解压后,打开Makefile文件,将ARCH修改为arm,CROSS_COMPILE修改为叫交叉编译器的全路径。编译内核同样也会出现yylloc的问题,所以也要原创 2021-08-27 21:09:11 · 3153 阅读 · 0 评论 -
【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(一)
概述迅为iTOP-4412开发板采用的CPU芯片为三星的exynos4412,开发板分为三种:(1)POP封装+1GB内存(2)SCP封装+1GB内存(3)SCP封装+2GB内存。笔者用的是SCP 1GB精英版(elite)。迅为开发板自带的光盘里面,有Android系统、QT系统、Qtopia系统和Ubuntu系统的源代码和镜像,但是却唯独没有Linux最小系统的源码和镜像!操作系统 uboot所在文件夹 linux内核所在文件夹 根文件系统所在文件夹 And..原创 2021-08-25 20:07:08 · 9463 阅读 · 3 评论 -
Fedora 33修改PrintScreenSysReq屏幕截图按键为对话框模式
在以前的GNOME2时代,按下键盘上的屏幕截图按键后,弹出的是一个对话框,询问截图的保存位置。但是到了GNOME3,屏幕截图键按下后,自动就保存文件到Pictures文件夹了,很不方便。这可以通过修改键盘快捷键的设置来解决。首先,禁用默认的屏幕截图快捷键(Save a screenshot to Pictures):新增一个自定义的快捷键:gnome-screenshot -i修改完成后,按屏幕截图键,就能弹出原来的对话框了:...原创 2021-02-15 22:53:22 · 268 阅读 · 0 评论 -
Fedora 33安装VirtualBox 6.1
目前virtualbox只有fedora32的rpm包,没有fedora33的。去VirtualBox官网下载VirtualBox-6.1-6.1.18_142142_fedora32-1.x86_64.rpm,用sudo rpm -i命令安装:[octopus@pc3 Downloads]$ sudo rpm -ivh VirtualBox-6.1-6.1.18_142142_fedora32-1.x86_64.rpm warning: VirtualBox-6.1-6.1.18_142142_.原创 2021-02-15 21:47:57 · 1089 阅读 · 2 评论 -
PostgreSQL跨版本升级时如何保留数据(Fedora33系统下从9.5升级到12.4)
昨天将Fedora 24升级到了26,然后依次升级到28、30、32,直到最新的Fedora 33。系统升级成功了,但是Postgresql无法启动了:[octopus@pc3 ~]$ sudo systemctl status postgresql● postgresql.service Loaded: not-found (Reason: Unit postgresql.service not found.) Active: failed (Result: exit-code)...原创 2021-02-13 12:22:07 · 715 阅读 · 0 评论 -
VMware装linux系统,开了虚拟机就必须一直呆在虚拟机里面,不能回到主机里面操作,否则虚拟机就会死机的解决办法
笔者的电脑内存为8GB,虚拟机已经开了4GB内存了,还是慢。而且必须一直呆在虚拟机里面,只要切换回主机操作一下,虚拟机马上就会卡死,几个小时都恢复不了,只能硬重启虚拟机。最后发现是虚拟机的CPU核心数只开了1个导致的。保持CPU个数为1不变,将虚拟机的CPU核心数改为4,问题就解决了。打开虚拟机后,操作主机,在主机上启动两个软件,虚拟机仍然很流畅,比以前好多了。...原创 2021-02-09 12:07:19 · 1495 阅读 · 0 评论 -
编译itop4412 uboot失败,提示multiple definition of `yylloc‘; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first
[oct1158@oct1158-fedora u-boot]$ lsbuild.sh clean.sh E4412_N.bl1.bin env.bin mkuboot.sh tools[oct1158@oct1158-fedora u-boot]$ ./build.sh## configuration written to .config#scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config....原创 2021-02-06 18:26:31 · 4904 阅读 · 6 评论 -
【解决办法】升级Fedora33后,屏幕分辨率无法随着VMware窗口大小的改变而改变,设置里面也没有1920x1080分辨率的选项
Bug1890815 - Wayland session as vmware 16 guest does not resize or maximise screen复制并修改配置文件:sudo cp /etc/vmware-tools/tools.conf.example /etc/vmware-tools/tools.confsudo vim /etc/vmware-tools/tools.conf[resolutionKMS]# Default is true if tool..原创 2021-02-06 16:05:43 · 986 阅读 · 1 评论