Hisi视频相关
环境
Platform: Hi3516DV100
Kernel: v3.4
Hisi视频流程VI -> VPSS -> CHN -> VENCcat /proc/vpss ,详见官方文档proc调试
Hisi的90°旋转:https://blog.csdn.net/wangweiqiang1325/article/details/75455395
方式:
在VI采集时旋转,但有很多限制条件,详情见MPP文档
在VPSS通道旋转,HI_MPI_VPSS_SetRotate
采用在VPSS通道旋转:
vpss的grp(VPSS_GRP_ATTR_S)和 VPSS的CHN MODE(VPSS_CHN_MODE_S)里面的宽高,都设置为1280x720,旋转之前的默认宽高
vpss ch需要设置图像格式为非压缩(很重要!!):stVpssChnMode.enCompressMode = COMPRESS_MODE_NONE;
设置vpss的通道旋转90度:HI_MPI_VPSS_SetRotate
check下VPSS CHN OUTPUT RESOLUTION里面的 ...
VPS部署Hexo
本地Hexo部分安装Node.js
Windows直接下载安装最新版
Ubuntu16.04安装最新版Nodejs :https://github.com/nodesource/distributions#rpm curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
安装Git下载安装最新版安装Hexosudo npm install -g hexo生成本地静态网站
进入要创建网页文件夹 hexo init
更换主题 cd themes git clone 需要下载的主题地址
配置主题 具体见主题
VPS部分安装配置Git创建git用户adduser git
添加root权限chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在下面添加一行git ...
Linux应用层I2C操作
背景:项目需求,需检测是否有camera sensor(CHIP_ADDR:0x6C>>1),通过I2C读取sensor的CHIP ID(CHIP_ID_H:0x300A, CHIP_ID_L:0x300B)为0x27 0x70
应用层I2C操作: unsigned char rddata[2]={0};
unsigned char rdaddr0[2] = {0x30, 0x0A}; //CHIP_ID_H 0x27
unsigned char rdaddr1[2] = {0x30, 0x0B}; //CHIP_ID_L 0x70
int fd =open(CHIP, O_RDWR);
if (fd< 0) {
printf("open"CHIP"failed\n");
return -1; ...
V4L2采集视频
V4L2 API:https://linuxtv.org/downloads/v4l-dvb-apis/userspace-api/v4l/v4l2.html
视频采集流程V4L2视频采集的简化流程:
打开设备 -> 设置输入源 -> 设置视频帧格式 -> 设置帧率等参数 -> 申请BUF及映射 -> 启动流 -> 获取数据 -> 停止视频流 -> 关闭设备
其他一些细节就省略了,这里只记录V4L2相关的 ioctl 操作流程。
打开设备fd = open(v4l_device, O_RDWR, 0);
获取设备信息
VIDIOC_QUERYCAP
struct v4l2_capability cam_cap;
ret = ioctl(fd, VIDIOC_QUERYCAP, &cam_cap);
printf("Driver Name: %s\nCard Name: %s\nBus info: %s\nDriver Version: %u.%u.%u\n",
cam_cap.driver,
...
Ubuntu相关
ubuntu网络相关:【ubuntu 16.04】
/etc/network/interfaces增加
auto ens33
iface ens33 inet static
address 192.168.88.181
netmask 255.255.255.0
gateway 192.168.88.2
注: ens33为网卡名,具体要看自己的机器
修改/etc/NetworkManager/NetworkManager.conf ,将 managed 设置为 true
设置 /etc/resolvconf/resolv.conf.d/base,增加
nameserver xxx
nameserver xxx
注: 机器在重启后,真正读取dns 的配置是在 /etc/resolv.conf,/etc/resolv.conf 的数据来源于 /etc/resolvconf/resolv.conf.d/base
重启网络服务/etc/init.d/netXX restart
【ubuntu 18.04/20.04 Server】ubuntu18.04 server之后,启用 ...
Uboot增加UDP收发和广播功能
背景: 因项目需求,要在Uboot里面添加UDP通讯,广播功能,从主机获取一些参数配置(IP等)。Uboot没有TCP/IP协议栈,不支持TCP,只支持简单的网络协议,具体见/uboot_src/net/net.c
MAC问题网络通讯的前提是有区别的MAC地址
烧写自己的MAC地址到Uboot
使用唯一的SN或UUID生成(节约MAC地址资源, 适用于局域网内)使用加密芯片全球唯一的SN,然后转化为MAC地址,检查MAC是否非法(is_valid_ether_addr(&sn[2])),非法则使用随机MAC(eth_random_addr(ethaddr);)setenv("ethaddr", ethaddr);保存MAC地址到uboot环境变量
Uboot增加UDP广播收发功能:参考:https://segmentfault.com/a/1190000005273491
添加自定义的xx_udp.c和xx_udp.h根据需要实现以下几部分(/uboot_src/net/):
实现开始和发送函数void UdpStart(void)
{
...
Uboot添加自定义命令
在/uboot_src/common目录添加cmd_xxx.c文件,参考其他cmd.c文件,大致实现以下两部分
/*命令具体实现*/
static int do_check_sd(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv[])
{
xxxx
}
/**/
U_BOOT_CMD(check_sd, 2, 1, do_check_sd,
"check tf/SD card.",
"[do_check_sd] "
);
注:U_BOOT_CMD(name,maxargs,repeatable,command,”usage”,”help”)
name:命令名,非字符串,但在U_BOOT_CMD中用“#”符号转化为字符串 maxargs:命令的最大参数个数 repeatable:是否自动重复(按Enter键是否会重复执行) command:该命令对应的响应函数指针 usage:简短的使用说明(字符串 ...
Ubuntu server18.04上搭建Gitlab(docker方式)
Ubuntu server18.04上搭建Gitlab(使用Docker)Ubuntu Server 18.04系统安装:下载官方镜像,使用rufus工具制作U盘安装盘按照官方文档安装,记得配上sshd
ubuntu18.04 server配置静态ip:请见https://notes.z-dd.online/2019/05/16/Ubuntu%E7%9B%B8%E5%85%B3/
安装docker及相关操作:详见https://notes.z-dd.online/2021/01/13/Docker%E7%9B%B8%E5%85%B3/
Install GitLab with Docker:https://docs.gitlab.com/ce/install/docker.html
运行gitlab-ee镜像(第一次执行会先下载镜像):
sudo docker run --detach \
--hostname gitlab-server \
--publish 443:443 --publish 80:80 --publish 2222:22 ...
Hello World
转战到Hexo,Node.js !Hello ,Hexo !Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post$ hexo new "My New Post"
More info: Writing
Run server$ hexo server
More info: Server
Generate static files$ hexo generate
More info: Generating
Deploy to remote sites$ hexo deploy
More info: Deployment
Kali Rolling版本折腾
最近有点“脑残”,想把之前自己电脑双系统里的linux-mint换成Kali的rolling版玩玩。
#引导: 于是开始行动,用win32diskimager将Kali的安装镜像文件写到U盘,分区,安装,和以前装ubuntu,mint都类似,一切都啥问题,到grub安装的时候,我选择了将grub安装到了MBR,系统全部安装后,重启,发现,悲剧了,没有grub的引导选项中win10选择项。终于想起来了,之前装mint的时候是用MBR引导grub(在window下用的easyBCD,很简单)。
然后硬着头皮去研究grub,后面发现了篇类似的文章(http://www.2cto.com/os/201411/354914.html),然后用里面的方案一就OK了:
在grub的配置文件/boot/grub/grub.cfg添加win10的启动项声明:
BEGIN /etc/grub.d/30_os-probermenuentry 'Windows 7 (loader) (on /dev/sda1)' –class windows –class os $menue ...
初尝Linux mint
Cinnamon桌面:
1.更新源,改为国内的,更新系统。
2.配置firefox,使用中文版的配置:删除用户目录下的.mozilla,里面就是些配置。下载个中文版的,解压,运行一次,会重新生成一个.mozilla。OK
3.安装显卡驱动:http://www.binarytides.com/install-nvidia-drivers-linux-mint-16/
4.中文输入法,在选项里可以安装
5.翻墙配置(Shadowsocks,见linux常用命令)
清除
android上安装kali
最近公司换新手机了–P8乞丐版,以前的那个就没啥用了(其实早就没用了,一方面质量太差,经常失灵,另一方面带两个手机太麻烦了)。反正放在那闲着也是闲着,于是琢磨着能不能在上面装个linux,后面在网上一查,真的可以哇,于是说干就干。先刷个机,刷得干净清爽点,那个是定制机,里面乱七八糟的太多的太卡了Deploy linux和Busybox都需要root权限,而且。开始装个Deploy linux,感觉就是类似PC上的虚拟机,虚拟化chroot容器。安装好了后面发现在里面安装Linux要依赖Busybox,于是又安了个Busybox。一切开始准备Ok,开始傻瓜式安装Kali。注意安装期间千万别断网,否则要重新开始。安装Ok后,用SSH和VNC都可以连上去,感觉还是有点卡哇,毕竟是容器里面的跑的。
2016-01-24 20:44:34