0

4003

arm开发板(orangepi)系统烧制

准备工作

1、下载镜像压缩包,解压成img

2、准备一张sd卡,读卡器

3、orangepi/或bananapi/或树莓派等arm开发板

烧制系统到sd卡

本例将介绍在linux系统下。

xiao@xiao-desktop cd /dev
xiao@xiao-desktop ls

ls命令,记录未插入sd卡前,dev目录下的文件。然后再将sd卡放入读卡器插上电脑的usb插口, 再ls命令,对比发现sd卡,例如本例发现dev目录下多了: sdc、sdc1、sdc2三个文件。 或用fdisk -l命令,找到sd卡。

清除sd卡分区,重新建分区:

xiao@xiao-desktop /dev $ sudo umount /dev/sdc*
xiao@xiao-desktop /dev $ sudo fdisk /dev/sdc

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

////////清除所有分区
Command (m for help): o
Created a new DOS disklabel with disk identifier 0xf22376e6.

////////查看分区,分区已被清除
Command (m for help): p
Disk /dev/sdd: 30 GiB, 32220643328 bytes, 62930944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf22376e6

////////新建分区
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-62930943, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-62930943, default 62930943): 

Created a new partition 1 of type 'Linux' and of size 30 GiB.

////////保存修改
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

格式化sd卡:

xiao@xiao-desktop /dev $ sudo mkfs.vfat /dev/sdc1

写入镜像:

……

乐果   发表于   2019 年 02 月 22 日 标签:arm 继续阅读

0

3201

go交叉编译arm程序

编译Go编译器(Host) 因为从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码编译Go需要先编译一个1.4版本的Go版本。

下载完成之后将得到一个go1.4压缩包,接下来进行解压编译:

tar -zxvf go1.4-bootstrap-20171003.tar.gz -C /usr/local/
cd /usr/local/go/src
GOOS=linux GOARCH=amd64 ./make.bash

经过短时间的编译之后将会在go/bin目录下生成go命令二进制文件

设置环境变量 在/etc/bash.bashrc文件中添加如下内容(重启命令行后生效)):

export GOROOT_BOOTSTRAP=/usr/local/go
export CC_FOR_TARGET=/opt/zhaozhongxiang/hwzt_yc_3.10.53/build-x11/tmp/sysroots/x86_64-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc    
export CXX_FOR_TARGET=/opt/zhaozhongxiang/hwzt_yc_3.10.53/build-x11/tmp/sysroots/x86_64-linux/usr/bin/cortexa9hf-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++

编译Go(ARM) 完成Go1.4的编译之后,可以利用Go1.4来编译新版本的Go。

……

乐果   发表于   2019 年 02 月 20 日 标签:golang 继续阅读

0

2985

udp广播通信

udp广播通信

特点:

1.数据传输不用建立连接,所以不可靠(符合udp协议的特点);

2.数据的发送是面向整个子网的,任何一台在子网内的计算机都可以接收到相同的数据;

3.广播用于udp和原始IP,不能用于TCP;

4.本地广播信息是不会被路由器转发,当然这是十分容易理解的,因为如果路由器转发了广播信息,那么势必会引起网络瘫痪。这也是为什么IP协议的设计者故意没有定义互联网范围的广播机制;

用途:

1.定位本地子网内的主机

前提是已知该主机位于本地子网,但是不知到他的单播地址。例如通过广播向所有子网内的主机的某端口发送数据报,如果主机有进程在该端口等待接收数据并回射数据,那么在recvfrom中会得到该主机的单播地址。

例如:手机通过wifi(ip)方式投影到局域网的电视机这个场景中,电视机不断的通过udp广播方式向同一个局域网中的其他设备告知自身的ip,比如手机收到了广播报文,这时手机上发现了电视机这个设备(手机知道了电视机的ip地址)然后再链接电视机进行投影。

2.减少分组流通

例如,多个客户主机与一个服务器主机通信的局域网中,广播的方式会尽量减少分组流通。

广播地址:

广播地址是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机号为全1的IP地址为广播地址。例如,对于 :192.168.199.0(掩码:255.255.255.0)网段,其广播地址为192.168.199.255 (255 即为2进制的11111111 ),当发出一个目的地址为192.168.199.255的分组时,它将被分发给该网段上的所有计算机。

1.直接广播地址

指Host部分全为1的广播地址。如:192.168.199.255。当某机器发出目的地址为直接广播(如:192.168.199.255)时,路由器通过查找路由表可以转发,直到该网段。

2.受限广播地址

也称本地广播地址,它不被路由发送,但会被送到相同物理网络段上的所有主机,IP地址的网络号和主机号 全为1就是地址255.255.255.255,当某机器发出目的地址为本地广播时,路由器不会转发该包。所以该包只能限制在本网段

golang实例测试:

……

乐果   发表于   2019 年 02 月 18 日 标签:udp 继续阅读

0

2998

编译安装php的rabbitmq扩展

rabbitmq遵循amqp协议,因此php安装amqp扩展即可。

但是安装前,依然需要rabbitmq具体依赖库,所以需要先安装rabbitmq-c。

一、rabbitmq-c安装

去github下载最新稳定版本:

https://github.com/alanxz/rabbitmq-c

例如目前的最新版本:

https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz

wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz .
tar -xzvf rabbitmq-c-0.9.0.tar.gz
cd rabbitmq-c-0.9.0
mkdir build && cd build #这一步是在rabbitmq-c的根目录下创建一个build子目录
# 这一步是让cmake根据../CMakeList.txt,即rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件
# Makefile文件会被创建到build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
sudo cmake --build .  --target install

这时,/usr/local/rabbitmq-c目录下已经有依赖库文件

二、安装amqp扩展

……

乐果   发表于   2018 年 11 月 01 日 标签:rabbitmq 继续阅读

0

2613

rabbitmq编译安装

一、安装erlang

下载最新稳定版本,编译安装,例如:

http://erlang.org/download/otp_src_21.1.tar.gz

wget http://erlang.org/download/otp_src_21.1.tar.gz .
tar -xzvf otp_src_21.1.tar.gz
cd otp_src_21.1
./configure --prefix=/data/service/erlang/otp_21.1
sudo make
sudo make install

报错: configure: error: No curses library functions found configure: error: /home/xiao/download/otp_src_21.1/erts/configure failed for erts

缺少ncurses,安装sudo apt install libncurses5-dev

二、安装rabbitmq

下载最新稳定版本,编译安装,例如:

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz

xz -d abbitmq-server-generic-unix-3.7.8.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.8.tar
mv rabbitmq_server... /data/service/rabbitmq
cd /data/service/rabbitmq
./sbin/rabbitmq-server
//此时可能会报erl找不到
//这时需要把/data/service/erlang/otp_21.1/bin加入到环境变量PATH中去
//
//./sbin/rabbitmq-server -detached

报erl找不到,将erlang目录加入PATH: vim /etc/sudoers,修改:

……

乐果   发表于   2018 年 10 月 31 日 标签:rabbitmq 继续阅读

较旧的文章 较新的文章
热评文章