Loading eclipse_project_setup/.cproject +4 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.864295621" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2002029678" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> Loading @@ -34,6 +35,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.1604866480" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1399974758" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__arm__=1"/> Loading @@ -51,6 +53,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.1372301239" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <inputType id="cdt.managedbuild.tool.gnu.assembler.input.308294150" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> Loading src/camogm.c +5 −5 Original line number Diff line number Diff line Loading @@ -573,7 +573,7 @@ int sendImageFrame(camogm_state *state) } // is the frame ready? if (lseek(state->fd_circ[port], LSEEK_CIRC_READY, SEEK_END) < 0) { D3(fprintf(debug_file, "?6,fp=0x%x ", fp)); //frame not ready, frame pointer seems valid, but not ready D3(fprintf(debug_file, "?6,fp=0x%x\n", fp)); //frame not ready, frame pointer seems valid, but not ready return -CAMOGM_FRAME_NOT_READY; // frame pointer valid, but no frames yet } Loading @@ -583,7 +583,7 @@ int sendImageFrame(camogm_state *state) //optionally save it to global read pointer (i.e. for debugging with imgsrv "/pointers") if (state->save_gp) lseek(state->fd_circ[port], LSEEK_CIRC_SETP, SEEK_END); state->frames_skip_left[port]--; D3(fprintf(debug_file, "?7 ")); //frame not ready D3(fprintf(debug_file, "?7\n")); //frame not ready return -CAMOGM_FRAME_NOT_READY; // the required frame is not ready } Loading Loading @@ -691,7 +691,7 @@ int sendImageFrame(camogm_state *state) state->packetchunks[state->chunk_index++].chunk = (unsigned char*)&ccam_dma_buf[state->port_num][state->cirbuf_rp[port] >> 2]; state->writer_params.segments = 1; } D3(fprintf(debug_file, "\tcirbuf_rp = 0x%x\t", state->cirbuf_rp[port])); D3(fprintf(debug_file, "\tcirbuf_rp[%d] = 0x%x\t", port, state->cirbuf_rp[port])); D3(fprintf(debug_file, "_12_")); if (state->this_frame_params[port].color != COLORMODE_RAW) { // Tiff state->packetchunks[state->chunk_index ].bytes = 2; Loading Loading @@ -1673,10 +1673,10 @@ int listener_loop(camogm_state *state) } #endif } else if (state->prog_state == STATE_RUNNING) { // no commands in queue, started D6(fprintf(debug_file, "state->prog_state == STATE_RUNNING ")); switch ((rslt = -sendImageFrame(state))) { rslt = -sendImageFrame(state); D6(fprintf(debug_file, " ==> %d",rslt)); switch (rslt) { case 0: break; // frame sent OK, nothing to do (TODO: check file length/duration) case CAMOGM_FRAME_NOT_READY: // just wait for the frame to appear at the current pointer Loading src/camogm_align.c +38 −6 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ /** @brief This define is needed to use lseek64 and should be set before includes */ #define _LARGEFILE64_SOURCE #define ALIGN_INTERFRAME // New alignment mode - add zeros between frames (TIFF also), not inside JPEG with app15 (JPEG only) #include <stdio.h> #include <stdlib.h> #include <stdarg.h> Loading @@ -31,6 +31,7 @@ static unsigned char app15[ALIGNMENT_SIZE] = {0xff, 0xef}; static inline size_t get_size_from(const struct iovec *vects, int index, size_t offset, int all); static inline size_t align_bytes_num(size_t data_len, size_t align_len); static inline void vectcpy(struct iovec *dest, void *src, size_t len); static inline void vectset(struct iovec *dest, int src, size_t len); static inline void vectshrink(struct iovec *vec, size_t len); static inline void vectshrinkhead(struct iovec *vec, size_t len); static inline unsigned char *vectrpos(struct iovec *vec, size_t offset); Loading Loading @@ -61,6 +62,17 @@ static inline void vectcpy(struct iovec *dest, void *src, size_t len) dest->iov_len += len; } /** Set @e len bytes with @e src to buffer pointed by @e dest vector */ static inline void vectset(struct iovec *dest, int src, size_t len) { unsigned char *d = (unsigned char *)dest->iov_base; memset(d + dest->iov_len, src, len); dest->iov_len += len; } /** Shrink vector length by @len bytes */ static inline void vectshrink(struct iovec *vec, size_t len) { Loading Loading @@ -110,7 +122,7 @@ static inline size_t get_size_from(const struct iovec *vects, int index, size_t return total; } /** Return the number of bytes needed to align @e data_len to @e align_len boundary */ /** Return the number of bytes needed to be inserted to align @e data_len to @e align_len boundary */ static inline size_t align_bytes_num(size_t data_len, size_t align_len) { size_t rem = data_len % align_len; Loading Loading @@ -160,10 +172,12 @@ static void remap_vectors(camogm_state *state, struct iovec *chunks) chunks[CHUNK_DATA_1].iov_base = chunks[CHUNK_DATA_0].iov_base; chunks[CHUNK_DATA_1].iov_len = 0; } chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; // chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; if (is_tiff) { // Tiff chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index-1].chunk; // last used chunk (valid) chunks[CHUNK_TRAILER].iov_len = 0; } else { chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; chunks[CHUNK_TRAILER].iov_len = state->packetchunks[chunk_index].bytes; } Loading Loading @@ -288,7 +302,7 @@ void align_frame(camogm_state *state) remap_vectors(state, chunks); total_sz = get_size_from(chunks, 0, 0, INCLUDE_REM) + rbuff->iov_len; D4(fprintf(debug_file, "total_sz = %d\n", total_sz)); D4(fprintf(debug_file, "total_sz = %d, rbuff->iov_len=%d\n", total_sz, (int)(rbuff->iov_len))); if (total_sz < PHY_BLOCK_SIZE) { /* the frame length is less than sector size, delay this frame */ if (rbuff->iov_len != 0) { Loading Loading @@ -321,6 +335,14 @@ void align_frame(camogm_state *state) vectshrink(rbuff, rbuff->iov_len); } /*Calculate alignment size and add zeros here*/ #ifdef ALIGN_INTERFRAME // calculate length after adding CHUNK_LEADER, CHUNK_EXIF and CHUNK_HEADER to the current cbuf data_len = cbuff->iov_len + chunks[CHUNK_LEADER].iov_len + chunks[CHUNK_EXIF].iov_len+ chunks[CHUNK_HEADER].iov_len; len = align_bytes_num(data_len, ALIGNMENT_SIZE); dev_dbg(dev, "total number of stuffing bytes between frames: %u\n", len); vectset(cbuff, 0, len); #endif /* copy JPEG marker if present */ if (chunks[CHUNK_LEADER].iov_len != 0) { len = chunks[CHUNK_LEADER].iov_len; Loading @@ -336,6 +358,16 @@ void align_frame(camogm_state *state) vectshrink(&chunks[CHUNK_EXIF], chunks[CHUNK_EXIF].iov_len); } #ifdef ALIGN_INTERFRAME /* copy JPEG JPEG header data excluding leading marker if present */ if (chunks[CHUNK_HEADER].iov_len != 0) { len = chunks[CHUNK_HEADER].iov_len; dev_dbg(dev, "copy %u bytes from LEADER to common buffer\n", len); vectcpy(cbuff, chunks[CHUNK_HEADER].iov_base, len); vectshrink(&chunks[CHUNK_HEADER], chunks[CHUNK_HEADER].iov_len); } #else // old way with app15 if (chunks[CHUNK_HEADER].iov_len != 0){ // only if it is not TIFF /* align common buffer to ALIGNMENT boundary, APP15 marker should be placed before header data */ data_len = cbuff->iov_len + chunks[CHUNK_HEADER].iov_len; Loading @@ -362,13 +394,13 @@ void align_frame(camogm_state *state) vectshrinkhead(&chunks[CHUNK_DATA_0],len); } } #endif /* check if there is enough data to continue - JPEG data length can be too short */ len = get_size_from(chunks, CHUNK_DATA_0, 0, EXCLUDE_REM); if (len < PHY_BLOCK_SIZE) { size_t num = align_bytes_num(cbuff->iov_len, PHY_BLOCK_SIZE); dev_dbg(dev, "jpeg data is too short, delay this frame\n"); dev_dbg(dev, "jpeg data is too short, delay this frame\n"); // never happened? if (len >= num) { /* there is enough data to align common buffer to sector boundary */ if (num >= chunks[CHUNK_DATA_0].iov_len) { Loading src/format_disk/format_disk.py +12 −7 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ def get_disk_size(dev_path): return 0 if (label == 'unknown'): #print("unknown label, running parted -s /dev/sda mklabel msdos!") print ("Disregard 'Error: /dev/sda: unrecognised disk label' above ") try: parted_print = subprocess.check_output(['parted', '-s', dev_path, 'mklabel', 'msdos']) except: Loading Loading @@ -266,7 +267,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Prepare and partition new disk for fast recording from camogm") parser.add_argument('disk_path', nargs = '?', help = "path to a disk which should be partitioned, e.g /dev/sda") parser.add_argument('-l', '--list', action = 'store_true', help = "list attached disk(s) suitable for partitioning along " + "with their totals sizes and possible system partition sizes separated by colon") "with their totals sizes and possible system partition sizes separated by colon. -lf - include already partitioned.") parser.add_argument('-e', '--errno', nargs = 1, type = int, help = "convert error number returned by the script to error message") parser.add_argument('-d', '--dry_run', action = 'store_true', help = "execute the script but do not actually create partitions") parser.add_argument('-f', '--force', action = 'store_true', help = "force 'mkfs' to create a file system and re-format existing partitions") Loading Loading @@ -295,18 +296,19 @@ if __name__ == "__main__": disks = find_disks(True) if disks: disk_path = disks[0] """ if (disk_path != ""): print (disk_path) else: print ("disk_path empty") """ # if (disk_path != ""): # print (disk_path) #first line output # else: # print ("disk_path empty") if (disk_path != ""): with open("/proc/mounts", "r") as file: content = file.read() if (content.find(disk_path) > 0): # <0 - not founed # print (disk_path+" is mounted") mount_point = content[content.find(disk_path):].split()[1] # print ("mount_point=",mount_point) # try to unmount try: subprocess.check_output(['umount', mount_point]) Loading @@ -315,6 +317,8 @@ if __name__ == "__main__": ret_code.err_code = ErrCodes.PART_MOUINTED print(ret_code.err2str()) sys.exit(ret_code.err_code) # print ("umount") disk_name = disk_path[:8]# /dev/sdx #delete MBR on this device : dd if=/dev/zero of=/dev/sda bs=512 count=1 try: Loading Loading @@ -361,6 +365,7 @@ if __name__ == "__main__": ret_code.err_code = ErrCodes.WRONG_PATH else: ret_code.err_code = ErrCodes.WRONG_PATH if ret_code.err_code != ErrCodes.OK: print(ret_code.err2str()) sys.exit(ret_code.err_code) Loading Loading
eclipse_project_setup/.cproject +4 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.include.paths.864295621" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2002029678" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> </tool> Loading @@ -34,6 +35,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.1604866480" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1399974758" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__arm__=1"/> Loading @@ -51,6 +53,7 @@ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.both.asm.option.include.paths.1372301239" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include-uapi""/> <listOptionValue builtIn="false" value=""${PWD}/sysroots/usr/include/ogg""/> </option> <inputType id="cdt.managedbuild.tool.gnu.assembler.input.308294150" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> </tool> Loading
src/camogm.c +5 −5 Original line number Diff line number Diff line Loading @@ -573,7 +573,7 @@ int sendImageFrame(camogm_state *state) } // is the frame ready? if (lseek(state->fd_circ[port], LSEEK_CIRC_READY, SEEK_END) < 0) { D3(fprintf(debug_file, "?6,fp=0x%x ", fp)); //frame not ready, frame pointer seems valid, but not ready D3(fprintf(debug_file, "?6,fp=0x%x\n", fp)); //frame not ready, frame pointer seems valid, but not ready return -CAMOGM_FRAME_NOT_READY; // frame pointer valid, but no frames yet } Loading @@ -583,7 +583,7 @@ int sendImageFrame(camogm_state *state) //optionally save it to global read pointer (i.e. for debugging with imgsrv "/pointers") if (state->save_gp) lseek(state->fd_circ[port], LSEEK_CIRC_SETP, SEEK_END); state->frames_skip_left[port]--; D3(fprintf(debug_file, "?7 ")); //frame not ready D3(fprintf(debug_file, "?7\n")); //frame not ready return -CAMOGM_FRAME_NOT_READY; // the required frame is not ready } Loading Loading @@ -691,7 +691,7 @@ int sendImageFrame(camogm_state *state) state->packetchunks[state->chunk_index++].chunk = (unsigned char*)&ccam_dma_buf[state->port_num][state->cirbuf_rp[port] >> 2]; state->writer_params.segments = 1; } D3(fprintf(debug_file, "\tcirbuf_rp = 0x%x\t", state->cirbuf_rp[port])); D3(fprintf(debug_file, "\tcirbuf_rp[%d] = 0x%x\t", port, state->cirbuf_rp[port])); D3(fprintf(debug_file, "_12_")); if (state->this_frame_params[port].color != COLORMODE_RAW) { // Tiff state->packetchunks[state->chunk_index ].bytes = 2; Loading Loading @@ -1673,10 +1673,10 @@ int listener_loop(camogm_state *state) } #endif } else if (state->prog_state == STATE_RUNNING) { // no commands in queue, started D6(fprintf(debug_file, "state->prog_state == STATE_RUNNING ")); switch ((rslt = -sendImageFrame(state))) { rslt = -sendImageFrame(state); D6(fprintf(debug_file, " ==> %d",rslt)); switch (rslt) { case 0: break; // frame sent OK, nothing to do (TODO: check file length/duration) case CAMOGM_FRAME_NOT_READY: // just wait for the frame to appear at the current pointer Loading
src/camogm_align.c +38 −6 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ /** @brief This define is needed to use lseek64 and should be set before includes */ #define _LARGEFILE64_SOURCE #define ALIGN_INTERFRAME // New alignment mode - add zeros between frames (TIFF also), not inside JPEG with app15 (JPEG only) #include <stdio.h> #include <stdlib.h> #include <stdarg.h> Loading @@ -31,6 +31,7 @@ static unsigned char app15[ALIGNMENT_SIZE] = {0xff, 0xef}; static inline size_t get_size_from(const struct iovec *vects, int index, size_t offset, int all); static inline size_t align_bytes_num(size_t data_len, size_t align_len); static inline void vectcpy(struct iovec *dest, void *src, size_t len); static inline void vectset(struct iovec *dest, int src, size_t len); static inline void vectshrink(struct iovec *vec, size_t len); static inline void vectshrinkhead(struct iovec *vec, size_t len); static inline unsigned char *vectrpos(struct iovec *vec, size_t offset); Loading Loading @@ -61,6 +62,17 @@ static inline void vectcpy(struct iovec *dest, void *src, size_t len) dest->iov_len += len; } /** Set @e len bytes with @e src to buffer pointed by @e dest vector */ static inline void vectset(struct iovec *dest, int src, size_t len) { unsigned char *d = (unsigned char *)dest->iov_base; memset(d + dest->iov_len, src, len); dest->iov_len += len; } /** Shrink vector length by @len bytes */ static inline void vectshrink(struct iovec *vec, size_t len) { Loading Loading @@ -110,7 +122,7 @@ static inline size_t get_size_from(const struct iovec *vects, int index, size_t return total; } /** Return the number of bytes needed to align @e data_len to @e align_len boundary */ /** Return the number of bytes needed to be inserted to align @e data_len to @e align_len boundary */ static inline size_t align_bytes_num(size_t data_len, size_t align_len) { size_t rem = data_len % align_len; Loading Loading @@ -160,10 +172,12 @@ static void remap_vectors(camogm_state *state, struct iovec *chunks) chunks[CHUNK_DATA_1].iov_base = chunks[CHUNK_DATA_0].iov_base; chunks[CHUNK_DATA_1].iov_len = 0; } chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; // chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; if (is_tiff) { // Tiff chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index-1].chunk; // last used chunk (valid) chunks[CHUNK_TRAILER].iov_len = 0; } else { chunks[CHUNK_TRAILER].iov_base = (void *)state->packetchunks[chunk_index].chunk; chunks[CHUNK_TRAILER].iov_len = state->packetchunks[chunk_index].bytes; } Loading Loading @@ -288,7 +302,7 @@ void align_frame(camogm_state *state) remap_vectors(state, chunks); total_sz = get_size_from(chunks, 0, 0, INCLUDE_REM) + rbuff->iov_len; D4(fprintf(debug_file, "total_sz = %d\n", total_sz)); D4(fprintf(debug_file, "total_sz = %d, rbuff->iov_len=%d\n", total_sz, (int)(rbuff->iov_len))); if (total_sz < PHY_BLOCK_SIZE) { /* the frame length is less than sector size, delay this frame */ if (rbuff->iov_len != 0) { Loading Loading @@ -321,6 +335,14 @@ void align_frame(camogm_state *state) vectshrink(rbuff, rbuff->iov_len); } /*Calculate alignment size and add zeros here*/ #ifdef ALIGN_INTERFRAME // calculate length after adding CHUNK_LEADER, CHUNK_EXIF and CHUNK_HEADER to the current cbuf data_len = cbuff->iov_len + chunks[CHUNK_LEADER].iov_len + chunks[CHUNK_EXIF].iov_len+ chunks[CHUNK_HEADER].iov_len; len = align_bytes_num(data_len, ALIGNMENT_SIZE); dev_dbg(dev, "total number of stuffing bytes between frames: %u\n", len); vectset(cbuff, 0, len); #endif /* copy JPEG marker if present */ if (chunks[CHUNK_LEADER].iov_len != 0) { len = chunks[CHUNK_LEADER].iov_len; Loading @@ -336,6 +358,16 @@ void align_frame(camogm_state *state) vectshrink(&chunks[CHUNK_EXIF], chunks[CHUNK_EXIF].iov_len); } #ifdef ALIGN_INTERFRAME /* copy JPEG JPEG header data excluding leading marker if present */ if (chunks[CHUNK_HEADER].iov_len != 0) { len = chunks[CHUNK_HEADER].iov_len; dev_dbg(dev, "copy %u bytes from LEADER to common buffer\n", len); vectcpy(cbuff, chunks[CHUNK_HEADER].iov_base, len); vectshrink(&chunks[CHUNK_HEADER], chunks[CHUNK_HEADER].iov_len); } #else // old way with app15 if (chunks[CHUNK_HEADER].iov_len != 0){ // only if it is not TIFF /* align common buffer to ALIGNMENT boundary, APP15 marker should be placed before header data */ data_len = cbuff->iov_len + chunks[CHUNK_HEADER].iov_len; Loading @@ -362,13 +394,13 @@ void align_frame(camogm_state *state) vectshrinkhead(&chunks[CHUNK_DATA_0],len); } } #endif /* check if there is enough data to continue - JPEG data length can be too short */ len = get_size_from(chunks, CHUNK_DATA_0, 0, EXCLUDE_REM); if (len < PHY_BLOCK_SIZE) { size_t num = align_bytes_num(cbuff->iov_len, PHY_BLOCK_SIZE); dev_dbg(dev, "jpeg data is too short, delay this frame\n"); dev_dbg(dev, "jpeg data is too short, delay this frame\n"); // never happened? if (len >= num) { /* there is enough data to align common buffer to sector boundary */ if (num >= chunks[CHUNK_DATA_0].iov_len) { Loading
src/format_disk/format_disk.py +12 −7 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ def get_disk_size(dev_path): return 0 if (label == 'unknown'): #print("unknown label, running parted -s /dev/sda mklabel msdos!") print ("Disregard 'Error: /dev/sda: unrecognised disk label' above ") try: parted_print = subprocess.check_output(['parted', '-s', dev_path, 'mklabel', 'msdos']) except: Loading Loading @@ -266,7 +267,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Prepare and partition new disk for fast recording from camogm") parser.add_argument('disk_path', nargs = '?', help = "path to a disk which should be partitioned, e.g /dev/sda") parser.add_argument('-l', '--list', action = 'store_true', help = "list attached disk(s) suitable for partitioning along " + "with their totals sizes and possible system partition sizes separated by colon") "with their totals sizes and possible system partition sizes separated by colon. -lf - include already partitioned.") parser.add_argument('-e', '--errno', nargs = 1, type = int, help = "convert error number returned by the script to error message") parser.add_argument('-d', '--dry_run', action = 'store_true', help = "execute the script but do not actually create partitions") parser.add_argument('-f', '--force', action = 'store_true', help = "force 'mkfs' to create a file system and re-format existing partitions") Loading Loading @@ -295,18 +296,19 @@ if __name__ == "__main__": disks = find_disks(True) if disks: disk_path = disks[0] """ if (disk_path != ""): print (disk_path) else: print ("disk_path empty") """ # if (disk_path != ""): # print (disk_path) #first line output # else: # print ("disk_path empty") if (disk_path != ""): with open("/proc/mounts", "r") as file: content = file.read() if (content.find(disk_path) > 0): # <0 - not founed # print (disk_path+" is mounted") mount_point = content[content.find(disk_path):].split()[1] # print ("mount_point=",mount_point) # try to unmount try: subprocess.check_output(['umount', mount_point]) Loading @@ -315,6 +317,8 @@ if __name__ == "__main__": ret_code.err_code = ErrCodes.PART_MOUINTED print(ret_code.err2str()) sys.exit(ret_code.err_code) # print ("umount") disk_name = disk_path[:8]# /dev/sdx #delete MBR on this device : dd if=/dev/zero of=/dev/sda bs=512 count=1 try: Loading Loading @@ -361,6 +365,7 @@ if __name__ == "__main__": ret_code.err_code = ErrCodes.WRONG_PATH else: ret_code.err_code = ErrCodes.WRONG_PATH if ret_code.err_code != ErrCodes.OK: print(ret_code.err2str()) sys.exit(ret_code.err_code) Loading