改造安卓+Linux双启动,默认自动进入Linux,包含配置mini系统和ubuntu系统rootFS根系统。可以挂载移动硬盘,安装SMB实现windows共享。

分析存储设备信息

当前磁盘挂载和占用
root@raspberrypi:/home/pi# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/root 9.8G 3.1G 6.4G 33% /
devtmpfs 272M 0 272M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 6.6M 485M 2% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/mmcblk1p1 253M 51M 202M 21% /boot
tmpfs 99M 0 99M 0% /run/user/1000
/dev/sda1 7.5G 7.0M 7.5G 1% /media/pi/A0CF-2D25

查看分区
root@raspberrypi:/home/pi# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 7.5G 0 disk
└─sda1 8:1 1 7.5G 0 part /media/pi/A0CF-2D25
mmcblk0 179:0 0 7.3G 0 disk
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
mmcblk0rpmb 179:24 0 4M 0 disk
mmcblk1 179:32 0 119.3G 0 disk
├─mmcblk1p1 179:33 0 256M 0 part /boot
└─mmcblk1p2 179:34 0 119G 0 part /
root@raspberrypi:/home/pi#

blkid看不到内置eMMC分区
root@raspberrypi:/home/pi# blkid
/dev/mmcblk1p1: LABEL_FATBOOT=“boot” LABEL=“boot” UUID=“70A2-8001” TYPE=“vfat” PARTUUID=“ca9addd8-01”
/dev/mmcblk1p2: LABEL=“rootfs” UUID=“a1fafd2b-1ef0-4fe8-8ac1-ad33bbb48642” TYPE=“ext4” PARTUUID=“ca9addd8-02”
/dev/sda1: UUID=“A0CF-2D25” TYPE=“vfat” PARTUUID=“69b367ce-01”
/dev/mmcblk1: PTUUID=“ca9addd8” PTTYPE=“dos”

gdisk无法识别eMMC分区
root@raspberrypi:/home/pi# gdisk -l /dev/mmcblk0
mmcblk0 mmcblk0boot0 mmcblk0boot1 mmcblk0rpmb
root@raspberrypi:/home/pi# gdisk -l /dev/mmcblk0
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present

Creating new GPT entries.
Disk /dev/mmcblk0: 15269888 sectors, 7.3 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 127F9EA0-231B-4D73-BC03-515D4A2DF1D7
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 15269854
Partitions will be aligned on 2048-sector boundaries
Total free space is 15269821 sectors (7.3 GiB)

Number Start (sector) End (sector) Size Code Name
root@raspberrypi:/home/pi# ls /dev/mmc*
/dev/mmcblk0 /dev/mmcblk0boot1 /dev/mmcblk1 /dev/mmcblk1p2
/dev/mmcblk0boot0 /dev/mmcblk0rpmb /dev/mmcblk1p1
root@raspberrypi:/home/pi#

拷贝fastboot下的分区信息
factory_bootargs=mem=1G console=ttyAMA0,115200 root=/dev/mmcblk0p16 rootfstype=ext3 rootwait blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),8M(pqparam),20M(logo),20M(logobak),10M(loaderdb),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc),1M(stbid),10M(fackernel),70M(facrootbox),8M(userapi),8M(hibdrv),8M(qbflag),300M(qbdata),600M(cache),1024M(system),50M(keydata),-(userdata)

方案分析

由于内置eMMC查询 不到分区信息,如果要把linux安装到eMMC,就只能按照扇区直接写入,可能破坏原有的数据。
fastboot只能读取usb口,不能读取SD卡,所以只能把根文件系统放到u盘,SD卡就不用了。
小结:内置eMMC保持安卓启动,U盘启动Linux。

改造U盘

U盘分为2个区,boot分区为fat32保存内核;ext3分区保存根文件系统。
备份U盘的内核
root@raspberrypi:~# cp /media/pi/A0CF-2D25/hi_kernel.bin .
分区
fdisk /dev/sda
输入m查看帮助,p查看分区
d删除分区
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

n创建分区,指定100MB
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (1-4, default 1):
First sector (2048-15728639, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-15728639, default 15728639): +100M

Created a new partition 1 of type ‘Linux’ and of size 100 MiB.
Partition #1 contains a vfat signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

创建另外一个分区,使用剩余的全部空间
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):

Using default response p.
Partition number (2-4, default 2):
First sector (206848-15728639, default 206848):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (206848-15728639, default 15728639):

Created a new partition 2 of type ‘Linux’ and of size 7.4 GiB.

Command (m for help): p
Disk /dev/sda: 7.5 GiB, 8053063680 bytes, 15728640 sectors
Disk model:
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: 0x69b367ce

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 206847 204800 100M 83 Linux
/dev/sda2 206848 15728639 15521792 7.4G 83 Linux

Filesystem/RAID signature on partition 1 will be wiped.

w保存分区表
Command (m for help): w
The partition table has been altered.
Syncing disks.

root@raspberrypi:~#

格式化
忘了卸载
root@raspberrypi:~# mkfs.vfat /dev/sda1
mkfs.fat 4.1 (2017-01-24)
mkfs.vfat: /dev/sda1 contains a mounted filesystem.
root@raspberrypi:~# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/root 9.8G 3.1G 6.4G 33% /
devtmpfs 272M 0 272M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 6.7M 485M 2% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/mmcblk1p1 253M 51M 202M 21% /boot
tmpfs 99M 0 99M 0% /run/user/1000
/dev/sda1 7.5G 7.0M 7.5G 1% /media/pi/A0CF-2D25
root@raspberrypi:~# umount /media/pi/A0CF-2D25
root@raspberrypi:~#
root@raspberrypi:~# fdisk -l /dev/sda
Disk /dev/sda: 7.5 GiB, 8053063680 bytes, 15728640 sectors
Disk model:
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: 0x69b367ce

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 206847 204800 100M 83 Linux
/dev/sda2 206848 15728639 15521792 7.4G 83 Linux
root@raspberrypi:~# mkfs.vfat /dev/sda1
mkfs.fat 4.1 (2017-01-24)
格式化之后分区类型并未改变。几秒就完成

ext3的格式化大概花了2-3分钟。
root@raspberrypi:~# mkfs.ext3 /dev/sda2
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 1940224 4k blocks and 485760 inodes
Filesystem UUID: 53577d11-f7d5-45df-aebe-52c4418e07aa
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks):
done
Writing superblocks and filesystem accounting information: done

root@raspberrypi:~#
在windows下可以识别fat分区,写入文件正常。
重新插入机顶盒,自动识别并挂载,df查看挂载点
root@raspberrypi:~# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/root 10258552 3161032 6629604 33% /
devtmpfs 277800 0 277800 0% /dev
tmpfs 503336 0 503336 0% /dev/shm
tmpfs 503336 6760 496576 2% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 503336 0 503336 0% /sys/fs/cgroup
/dev/mmcblk1p1 258095 52146 205949 21% /boot
tmpfs 100664 0 100664 0% /run/user/1000
/dev/sda2 7573368 17120 7168204 1% /media/pi/53577d11-f7d5-45df-aebe-52c4418e07aa
/dev/sda1 102182 1312 100870 2% /media/pi/B151-7A19
拷贝我之前用busybox制作的1.3M的根文件系统,只是找不到之前的内核文件了。
root@raspberrypi:/media/pi/53577d11-f7d5-45df-aebe-52c4418e07aa# tar -zxvf /media/pi/B151-7A19/armroot.tar.gz
root@raspberrypi:/media/pi/53577d11-f7d5-45df-aebe-52c4418e07aa# mv armroot/* .
root@raspberrypi:/media/pi/53577d11-f7d5-45df-aebe-52c4418e07aa# rmdir armroot
root@raspberrypi:/media/pi/53577d11-f7d5-45df-aebe-52c4418e07aa# ls
bin dev etc linuxrc lost+found proc sbin sys tmp usr
恢复内核文件

设置自启动

剩下的工作就是修改、保存fastboot的环境变量
reboot进入fastboot模式
printenv查看环境变量
fastboot# printenv bootcmd
bootcmd=mmc read 0 0x1FFBFC0 0x50000 0x5000; bootm 0x1FFBFC0
fastboot# printenv bootargs
bootargs=console=ttyAMA0,115200 blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),8M(pqparam),20M(logo),20M(logobak),10M(loaderdb),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc),1M(stbid),10M(fackernel),70M(facrootbox),8M(userapi),8M(hibdrv),8M(qbflag),300M(qbdata),600M(cache),1024M(system),50M(keydata),-(userdata) androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046
fastboot#
备份
setenv bootcmd_bak ‘mmc read 0 0x1FFBFC0 0x50000 0x5000; bootm 0x1FFBFC0’
setenv bootargs_bak ‘console=ttyAMA0,115200 blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),8M(pqparam),20M(logo),20M(logobak),10M(loaderdb),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc),1M(stbid),10M(fackernel),70M(facrootbox),8M(userapi),8M(hibdrv),8M(qbflag),300M(qbdata),600M(cache),1024M(system),50M(keydata),-(userdata) androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046’
设置新的默认启动配置
setenv bootargs ‘console=ttyAMA0,115200 root=/dev/sda2 rootfstype=ext3 rootwait rw’
setenv bootcmd ‘usb start;fatload usb 0:1 0x1FFBFC0 hi_kernel.bin;bootm 0x1FFBFC0’
保存
saveenv
打印验证
printenv
拔出SD卡,重启
reset

自动启动到Linux正常
有个小错误,一直打印
—HDMI kernel event(no UserCallBack): HOTPLUG. —
scsi 0:0:0:0: Direct-Access 8.07 PQ: 0 ANSI: 4
sd 0:0:0:0: [sda] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI removable disk
kjournald starting. Commit interval 5 seconds
EXT3-fs (sda2): using internal journal
EXT3-fs (sda2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 8:2.
Freeing unused kernel memory: 508K (80e1e000 - 80e9d000)
can’t open /dev/tty2: No such file or directory

MiniRoot FileSystem is Ready …
can’t open /dev/tty2: No such file or directory
can’t open /dev/tty2: No such file or directory
can’t open /dev/tty2: No such file or directory
can’t open /dev/tty2: No such file or directory
random: nonblocking pool is initialized
can’t open /dev/tty2: No such file or directory

翻一下笔记:qemu模拟arm最小化文件系统测试记录
https://editor.csdn.net/md/?articleId=91347512

[root@(none) dev]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
创建2个串口设备文件
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
重启还是报错

修改 /etc/inittab
tty2::askfirst:-/bin/sh 修改为
::askfirst:-/bin/sh
reboot正常
kjournald starting. Commit interval 5 seconds
EXT3-fs (sda2): using internal journal
EXT3-fs (sda2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 8:2.
Freeing unused kernel memory: 508K (80e1e000 - 80e9d000)

Please press Enter to activate this console.
random: nonblocking pool is initialized

MiniRoot FileSystem is Ready …
[root@(none) ~]#
查看内核
[root@(none) ~]# uname -rp
3.18.24_s40 unknown
top信息
Mem: 148628K used, 863804K free, 0K shrd, 172K buff, 1972K cached
CPU: 0.0% usr 0.0% sys 0.0% nic 100% idle 0.0% io 0.0% irq 0.0% sirq
Load average: 4.71 2.17 0.84 1/68 85
cat /proc/cpuinfo meminfo都正常

这个迷你系统可以自己扩展
为了方便,拷贝一个Ubuntu系统
把u盘插入pc机,挂载到虚拟机
root@ubuntu18:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 966M 0 966M 0% /dev
tmpfs 200M 748K 199M 1% /run
/dev/mapper/ubuntu–vg-ubuntu–lv 8.8G 5.0G 3.4G 60% /
tmpfs 997M 0 997M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 997M 0 997M 0% /sys/fs/cgroup
/dev/sda2 976M 77M 832M 9% /boot
/dev/loop0 315M 269M 19M 94% /media
tmpfs 200M 0 200M 0% /run/user/1000
root@ubuntu18:~# ls /mnt
root@ubuntu18:~# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 0 1 0 /home/xy/ubuntu-16-04.img 0 512
root@ubuntu18:~# pwd
/home/xy
root@ubuntu18:~# mount /dev/sdb2 /mnt
root@ubuntu18:~# ls /mnt
bin dev etc linuxrc lost+found proc sbin sys tmp usr
root@ubuntu18:~# rm -rf /mnt/
rm: cannot remove ‘/mnt/’: Device or resource busy
root@ubuntu18:~# rm -rf /mnt/*
root@ubuntu18:~# cp -a /media/* /mnt/
root@ubuntu18:~# sync 这里一定要刷新缓存,否则拔掉u盘时会缺少文件。
出现3次 block 超过120秒的提示。
root@ubuntu18:~# umount /mnt

启动正常
Ubuntu 16.04 LTS ubuntu-zy ttyAMA0

ubuntu-zy login:
但是没有登录密码
通过下载时的介绍找到root密码1234
Ubuntu 16.04 LTS ubuntu-zy ttyAMA0

ubuntu-zy login: root
Password:
Last login: Sun Jun 16 01:42:37 CST 2019 on ttyAMA0
Welcome to Ubuntu 16.04 LTS (GNU/Linux 3.18.24_s40 armv7l)

  • Documentation: https://help.ubuntu.com/
    root@ubuntu-zy:~#
    root@ubuntu-zy:~# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/root 7.3G 287M 6.6G 5% /
    devtmpfs 275M 0 275M 0% /dev
    tmpfs 495M 0 495M 0% /dev/shm
    tmpfs 495M 13M 482M 3% /run
    tmpfs 5.0M 0 5.0M 0% /run/lock
    tmpfs 495M 0 495M 0% /sys/fs/cgroup
    root@ubuntu-zy:~# uname -rp
    3.18.24_s40 armv7l
    root@ubuntu-zy:~#
    修改IP地址
    /etc/network/interfaces
    auto eth0
    iface eth0 inet static
    address 192.168.199.131
    gateway 192.168.199.1
    netmask 255.255.255.0
    配置路由
    /etc/resolv.conf
    nameserver 192.168.199.1
    重启网络
    root@ubuntu-zy:~# systemctl restart networking
    root@ubuntu-zy:~# ip ad
    地址加上了,但是ping域名失败,reboot后正常

apt更新正常
root@ubuntu-zy:~# apt update
Hit:1 http://mirrors.ustc.edu.cn/ubuntu-ports xenial InRelease
安装软件正常
root@ubuntu-zy:~# apt install telnet
串口登录很卡
ssh登录正常,看看服务
root@ubuntu-zy:~# systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-08-29 14:03:00 CST; 6min ago

再回去测试安卓启动

setenv bootargs ‘console=ttyAMA0,115200 blkdevparts=mmcblk0:1M(fastboot),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),8M(pqparam),20M(logo),20M(logobak),10M(loaderdb),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc),1M(stbid),10M(fackernel),70M(facrootbox),8M(userapi),8M(hibdrv),8M(qbflag),300M(qbdata),600M(cache),1024M(system),50M(keydata),-(userdata) androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046 androidboot.serialno=005404FF0018143000010019F0E21CC6 androidboot.deviceid=111018410000046’
mmc read 0 0x1FFBFC0 0x50000 0x5000; bootm 0x1FFBFC0
启动正常。

挂载一个移动硬盘
启动时已正常识别
—HDMI kernel event(no UserCallBack): HOTPLUG. —
scsi 1:0:0:0: Direct-Access ATA ST500LM000-1EJ16 DEMC PQ: 0 ANSI: 6
sd 1:0:0:0: [sdb] 976773168 512-byte logical blocks: (500 GB/465 GiB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA
random: nonblocking pool is initialized
sdb: sdb1 sdb2 sdb3 < sdb5 sdb6 >
sd 1:0:0:0: [sdb] Attached SCSI disk
挂载ntfs分区正常,但是只读
root@ubuntu-zy:~# fdisk -l /dev/sdb
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 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: 0xebffb04d

Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 92279407 92277360 44G 83 Linux
/dev/sdb2 209717248 838862847 629145600 300G 7 HPFS/NTFS/exFAT
/dev/sdb3 838862848 976773119 137910272 65.8G f W95 Ext’d (LBA)
/dev/sdb5 838864896 847251455 8386560 4G 82 Linux swap / Solaris
/dev/sdb6 847253504 976752639 129499136 61.8G 83 Linux
root@ubuntu-zy:~# ls /mnt
root@ubuntu-zy:~# mount /dev/sdb2 /mnt
root@ubuntu-zy:/mnt/tmp# touch bb
touch: cannot touch ‘bb’: Read-only file system

配置DLNA共享

root@ubuntu-zy:~# apt install minidlna
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package minidlna
没有源,可能要自己编译了。
windows共享可以自动安装
源码: https://sourceforge.net/projects/minidlna/files/minidlna/1.2.1/minidlna-1.2.1.tar.gz/download

安装SMB实现windows共享

apt install samba
漫长等待,U盘糟糕,安装后
root@ubuntu-zy:/var/log# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.3G 590M 6.3G 9% /
配置文件末尾添加/etc/samba/smb.conf
[public]
comment = Public Storage
path = /home/ubuntu
read only = no
guest ok = yes
browseable = yes
配置后在win10可以直接访问\192.168.199.131,显示public目录,能写入文件
下面这个新增用户这里未使用,新增安全加强时备用
root@ubuntu-zy:~# smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
Added user ubuntu.

软件链接:https://download.csdn.net/download/weixin_43869959/12774894

机顶盒利旧改造,实现安卓和Linux双系统启动相关推荐

  1. win7下启动linux系统下载软件,WIN7+LINUX双系统启动

    WIN7+LINUX双系统启动 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 WIN7+LINUX双系统 WIN7+Fedora16双 ...

  2. linux双系统启动引导,linux windows 双系统并存与启动引导

    发现网站这类文章不好找 找到的分析也不太详细     小弟不才今天就写这么一个文章 PS: 文章是否保留出处属于个人意愿 本人不喜欢强制要求 一般安装WINDOWS 和 LINUX 并存的有两种方式 ...

  3. linux双系统启动项grub,grub双系统启动顺序更改

    多人都说更改 /boot/grub/grub.conf文件,将其中的default=0改成defualt=1. 我不太清楚这种方法是否在linux下正确,但我知道这在ubuntu下是不正确的, 因为在 ...

  4. win7与深度(Deepin)linux 双系统启动顺序调整

    一台win7电脑,安装deepin系统后,默认启动是系统是Deepin. 电脑开机后进入启动页面.前2项为Deepin的启动引导,第3项是Win7的启动引导.每次启动想进入Win7都需要手动选择,非常 ...

  5. 老旧计算机升级云桌面,哇哦!PC机房轻松升级云课堂 ,PC利旧方案看我的!

    原标题:哇哦!PC机房轻松升级云课堂 ,PC利旧方案看我的! 保定市第二十六中学是保定市竞秀区内一所知名中学,学校秉承着"让每一名学生健康.智慧.快乐的成长,让每一名教师健康.智慧.高效地工 ...

  6. firefox驱动_零适配 + 全兼容!龙芯电脑推出办公外设利旧通用解决方案:运行原生 Windows 驱动程序...

    龙芯中科宣布推出创新的办公外设利旧通用解决方案,采用跨指令兼容的二进制翻译(Binary Translation)技术,在龙芯电脑上运行原生的 Windows 驱动程序,具有 "零适配.全兼 ...

  7. ProxmoxVE 之 使用thinstation利旧安装瘦客户端

      上面左边是我的个人微信,如需进一步沟通,请加微信.  右边是我的公众号"Openstack私有云",如有兴趣,请关注. 桌面云的一个环节是瘦客户端,如果在企业当中有老旧电脑,可 ...

  8. 华为鸿蒙系统老手机能用吗_如果华为使用自家鸿蒙系统,旧手机的安卓系统可以更新成那个系统吗?...

    原标题:如果华为使用自家鸿蒙系统,旧手机的安卓系统可以更新成那个系统吗? 谷歌终止华为的业务往来,华为手机不能使用google android,同时不能使用谷歌提供的服务,同时也无缘android Q ...

  9. 安卓连接linux软件,利用 Telnet 无线控制安卓手机 无需 Root

    以往的文章里菲菲君一直在极力推荐 adb 来远程执行安卓 shell 命令,虽然 adb 也支持无线连接但需 Root 权限(现在的 Android 真的没有 Root 的必要了),连接数据线又很麻烦 ...

  10. 利旧IBM X3650m2 安装esxi5.1提供云桌面(备忘)

      上面左边是我的个人微信,如需进一步沟通,请加微信.  右边是我的公众号"Openstack私有云",如有兴趣,请关注. 公司有一台旧服务器,原来的IBM X3650m2 服务器 ...

最新文章

  1. 雷林鹏分享:PHP 魔术常量
  2. 3月机器学习在线班第六课笔记--信息熵与最大熵模型
  3. 判断一个变量是不是指针
  4. 融资租赁基础干货知识大整理
  5. 无法创建 set/get 参数(参数 ID)
  6. 机器学习sklearn19.0聚类算法——Kmeans算法
  7. Sublime Text[崇高文本]----最性感的编辑器(程序员必备)
  8. 自学Java的人,如何系统全面的学习?
  9. WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇](转)...
  10. Bailian3711 字符串移位包含问题【字符串循环匹配】(POJ NOI0107-19)
  11. Leetcode 257. 二叉树的所有路径
  12. 2015年江苏省计算机c语言二级考试,2015江苏省计算机等级考试C语言部分试题.doc...
  13. java做图形界面计算n_n皇后问题回溯法---java图形界面实现回溯过程
  14. 关于oracle端口映射的远程连接
  15. linux解pdf隐写工具,Linux版PDF解密工具PDFDecryptionTool-Deepin-amd64.deb下载
  16. 新一配:终于有人发声:靠炒股到底能不能发财?此文无价,很短很深
  17. M0+体系结构与指令系统简介
  18. 词嵌入向量WordEmbedding的原理和生成方法
  19. 【Python】pyqt5-----QObject
  20. K8S集群中Pod资源数据丢包排查思路

热门文章

  1. 2个方式快速解决:Word背景图片怎么设置
  2. 赛门铁克完成收购Blue Coat 重塑未来网络安全
  3. 族蚂网针对宠物网站建设有哪些新体验
  4. 如何通过几何画板学这些定理
  5. 使用tornado如何实现请求异步非阻塞?
  6. 精力充沛才能走得更远更从容
  7. 论精力充沛与事业成功
  8. linux系统发送短信,Linux系统的短信收发怎么实现?
  9. my97DatePicker选择年、季度、月、周、日(转)
  10. python数据笔记分析_python数据分析入门学习笔记