mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-18 19:57:31 +00:00
acrn-config: add 'run_container' back to the launch script
'run_container' starts to run the container which contains the clearlinux rootfs. store it in the same launch script with clearlinux. Tracked-On: #3811 Signed-off-by: Wei Liu <weix.w.liu@intel.com> Acked-by: Victor Sun <victor.sun@intel.com>
This commit is contained in:
parent
55e4f0aff9
commit
73ac285ec3
@ -106,14 +106,24 @@ def off_line_cpus(uos_type, config):
|
|||||||
print("", file=config)
|
print("", file=config)
|
||||||
|
|
||||||
|
|
||||||
def run_container(board_name, config):
|
def run_container(board_name, uos_type, config):
|
||||||
if board_name != "apl-mrb":
|
"""
|
||||||
|
The container contains the clearlinux as rootfs
|
||||||
|
:param board_name: board name
|
||||||
|
:param uos_type: the os name of user os
|
||||||
|
:param config: the file pointer to store the information
|
||||||
|
"""
|
||||||
|
# the runC.json is store in the path under board name, but for nuc7i7dnb/nuc6cayh/kbl-nuc-i7 is under nuc/
|
||||||
|
if 'nuc' in board_name:
|
||||||
|
board_name = 'nuc'
|
||||||
|
|
||||||
|
if board_name == "apl-up2" or uos_type != "CLEARLINUX":
|
||||||
return
|
return
|
||||||
|
|
||||||
print("function run_container()", file=config)
|
print("function run_container()", file=config)
|
||||||
print("{", file=config)
|
print("{", file=config)
|
||||||
print("vm_name=vm1", file=config)
|
print("vm_name=vm1", file=config)
|
||||||
print('config_src="/usr/share/acrn/samples/apl-mrb/runC.json"', file=config)
|
print('config_src="/usr/share/acrn/samples/{}/runC.json"'.format(board_name), file=config)
|
||||||
print('shell="/usr/share/acrn/conf/add/$vm_name.sh"', file=config)
|
print('shell="/usr/share/acrn/conf/add/$vm_name.sh"', file=config)
|
||||||
print('arg_file="/usr/share/acrn/conf/add/$vm_name.args"', file=config)
|
print('arg_file="/usr/share/acrn/conf/add/$vm_name.args"', file=config)
|
||||||
print('runc_bundle="/usr/share/acrn/conf/add/runc/$vm_name"', file=config)
|
print('runc_bundle="/usr/share/acrn/conf/add/runc/$vm_name"', file=config)
|
||||||
@ -148,6 +158,35 @@ def run_container(board_name, config):
|
|||||||
print(" fi", file=config)
|
print(" fi", file=config)
|
||||||
print("done", file=config)
|
print("done", file=config)
|
||||||
|
|
||||||
|
dst_str = """ cp "$config_src" "$config_dst"
|
||||||
|
args=$(sed '{s/-C//g;s/^[ \\t]*//g;s/^/\\"/;s/ /\\",\\"/g;s/$/\\"/}' ${arg_file})
|
||||||
|
sed -i "s|\\"sh\\"|\\"$shell\\", $args|" $config_dst"""
|
||||||
|
print('', file=config)
|
||||||
|
print('if [ ! -f "$shell" ]; then', file=config)
|
||||||
|
print(' echo "Pls add the vm at first!"', file=config)
|
||||||
|
print(' exit', file=config)
|
||||||
|
print('fi', file=config)
|
||||||
|
print('', file=config)
|
||||||
|
print('if [ ! -f "$arg_file" ]; then', file=config)
|
||||||
|
print(' echo "Pls add the vm args!"', file=config)
|
||||||
|
print(' exit', file=config)
|
||||||
|
print('fi', file=config)
|
||||||
|
print('', file=config)
|
||||||
|
print('if [ ! -d "$rootfs_dir" ]; then', file=config)
|
||||||
|
print(' mkdir -p "$rootfs_dir"', file=config)
|
||||||
|
print('fi', file=config)
|
||||||
|
print('if [ ! -d "$runc_bundle" ]; then', file=config)
|
||||||
|
print(' mkdir -p "$runc_bundle"', file=config)
|
||||||
|
print('fi', file=config)
|
||||||
|
print('if [ ! -f "$config_dst" ]; then', file=config)
|
||||||
|
print('{}'.format(dst_str), file=config)
|
||||||
|
print('fi', file=config)
|
||||||
|
print('runc run --bundle $runc_bundle -d $vm_name', file=config)
|
||||||
|
print('echo "The runC container is running in backgroud"', file=config)
|
||||||
|
print('echo "\'#runc exec <vmname> bash\' to login the container bash"', file=config)
|
||||||
|
print('exit', file=config)
|
||||||
|
print('}', file=config)
|
||||||
|
print('', file=config)
|
||||||
|
|
||||||
def boot_image_type(args, vmid, config):
|
def boot_image_type(args, vmid, config):
|
||||||
|
|
||||||
@ -191,8 +230,9 @@ def log_level_set(uos_type, config):
|
|||||||
print("", file=config)
|
print("", file=config)
|
||||||
|
|
||||||
|
|
||||||
def launch_begin(uos_type, config):
|
def launch_begin(board_name, uos_type, config):
|
||||||
launch_uos = '_'.join(uos_type.lower().split())
|
launch_uos = '_'.join(uos_type.lower().split())
|
||||||
|
run_container(board_name, uos_type, config)
|
||||||
print("function launch_{}()".format(launch_uos), file=config)
|
print("function launch_{}()".format(launch_uos), file=config)
|
||||||
print("{", file=config)
|
print("{", file=config)
|
||||||
|
|
||||||
@ -231,6 +271,7 @@ def mem_size_set(names, args, vmid, config):
|
|||||||
|
|
||||||
def uos_launch(names, args, vmid, config):
|
def uos_launch(names, args, vmid, config):
|
||||||
|
|
||||||
|
board_name = names['board_name']
|
||||||
gvt_args = args['gvt_args'][vmid]
|
gvt_args = args['gvt_args'][vmid]
|
||||||
uos_type = names['uos_types'][vmid]
|
uos_type = names['uos_types'][vmid]
|
||||||
launch_uos = '_'.join(uos_type.lower().split())
|
launch_uos = '_'.join(uos_type.lower().split())
|
||||||
@ -240,6 +281,7 @@ def uos_launch(names, args, vmid, config):
|
|||||||
print("", file=config)
|
print("", file=config)
|
||||||
print('launch_{} {} "{}" {} "{}" $debug'.format(launch_uos, vmid, gvt_args, launch_uos, vmid), file=config)
|
print('launch_{} {} "{}" {} "{}" $debug'.format(launch_uos, vmid, gvt_args, launch_uos, vmid), file=config)
|
||||||
print("", file=config)
|
print("", file=config)
|
||||||
|
|
||||||
print("umount /data", file=config)
|
print("umount /data", file=config)
|
||||||
|
|
||||||
if uos_type not in ("CLEARLINUX", "ANDROID", "ALIOS"):
|
if uos_type not in ("CLEARLINUX", "ANDROID", "ALIOS"):
|
||||||
@ -263,6 +305,7 @@ def uos_launch(names, args, vmid, config):
|
|||||||
|
|
||||||
def launch_end(names, args, vmid, config):
|
def launch_end(names, args, vmid, config):
|
||||||
|
|
||||||
|
board_name = names['board_name']
|
||||||
uos_type = names['uos_types'][vmid]
|
uos_type = names['uos_types'][vmid]
|
||||||
mem_size = args["mem_size"][vmid]
|
mem_size = args["mem_size"][vmid]
|
||||||
|
|
||||||
@ -302,6 +345,15 @@ def launch_end(names, args, vmid, config):
|
|||||||
print("mount {} /data".format(root_fs), file=config)
|
print("mount {} /data".format(root_fs), file=config)
|
||||||
print("", file=config)
|
print("", file=config)
|
||||||
|
|
||||||
|
if board_name == "apl-mrb":
|
||||||
|
print("if [ $runC_enable == 1 ]; then", file=config)
|
||||||
|
print(' if [ $(hostname) = "runc" ]; then', file=config)
|
||||||
|
print(' echo "Already in container exit!"', file=config)
|
||||||
|
print(" exit", file=config)
|
||||||
|
print(" fi", file=config)
|
||||||
|
print(" run_container", file=config)
|
||||||
|
print(" exit", file=config)
|
||||||
|
print("fi", file=config)
|
||||||
off_line_cpus(uos_type, config)
|
off_line_cpus(uos_type, config)
|
||||||
|
|
||||||
uos_launch(names, args, vmid, config)
|
uos_launch(names, args, vmid, config)
|
||||||
@ -474,13 +526,14 @@ def dm_arg_set(names, sel, dm, vmid, config):
|
|||||||
|
|
||||||
def gen(names, pt_sel, dm, vmid, config):
|
def gen(names, pt_sel, dm, vmid, config):
|
||||||
|
|
||||||
|
board_name = names['board_name']
|
||||||
uos_type = names['uos_types'][vmid]
|
uos_type = names['uos_types'][vmid]
|
||||||
|
|
||||||
# passthrough bdf/vpid dictionay
|
# passthrough bdf/vpid dictionay
|
||||||
pt.gen_pt_head(names, pt_sel, vmid, config)
|
pt.gen_pt_head(names, pt_sel, vmid, config)
|
||||||
|
|
||||||
# gen launch header
|
# gen launch header
|
||||||
launch_begin(uos_type, config)
|
launch_begin(board_name, uos_type, config)
|
||||||
tap_uos_net(names, vmid, config)
|
tap_uos_net(names, vmid, config)
|
||||||
|
|
||||||
# passthrough device
|
# passthrough device
|
||||||
|
Loading…
Reference in New Issue
Block a user